import java.io.*;
public class paixu{
public void sort(int [] data){
for(i=1;i<data.length;i++){
for(j=data.length-1;j>i;j--){
if(data[j]<data[j-1]){
swap(data,j,j-1);
}
}
}
}
public void swap(int [] data,i,i-1){
int a;
a=data[i];
data[i]=data[i-1];
data[i-1]=a;
}
public static void main(String args []){
int data []={1,5,3,9,8,6,7};
data.sort();
for(i=1;i<data.length;i++){
System.out.print(data[i]+" ");
}
}
}
public class paixu{
public void sort(int [] data){
for(i=1;i<data.length;i++){
for(j=data.length-1;j>i;j--){
if(data[j]<data[j-1]){
swap(data,j,j-1);
}
}
}
}
public void swap(int [] data,i,i-1){
int a;
a=data[i];
data[i]=data[i-1];
data[i-1]=a;
}
public static void main(String args []){
int data []={1,5,3,9,8,6,7};
data.sort();
for(i=1;i<data.length;i++){
System.out.print(data[i]+" ");
}
}
}
解决方案 »
- JAVA中能不能定义这样的二维数组int [][] play = new int [num][];?
- 如何调用JFrame的windowClosing方法
- 为什么我不能给l2 添加鼠标事件,还有鼠标点ji后为什么不输出dddd
- JDesktopPane中还能不能再除了JInternalFrame处的别的GUI组件呢??????
- 请问有什么方法将JAVA程序打包成带JVM的EXE文件!
- 请教游戏<深水炸弹>的对象控制问题
- java类与对象的内存占用???
- 一个applet里写多线程的问题.
- 请问websphere对外提供服务的时候需要什么端口?
- websphere3.5安装不上,高手帮忙(急!!!)。
- 正则问题
- JDBC纯JAVA驱动的问题
冒泡排序public class Test
{
public static void main(String args[])
{
int[] m =
{ 2, 8, 43, 3, 33, 1, 35, 34, 6, 9 };
int[] n = sort(m);
for (int i = 0; i < m.length; i++)
{
System.out.println(n[i] + "\n");
} } /* 冒泡排序算法 */
public static int[] sort(int[] m)
{
int intLenth = m.length;
/*执行intLenth次*/
for (int i = 0; i < intLenth; i++)
{
/*每执行一次,将最小的数排在后面*/
for (int j = 0; j < intLenth - i - 1; j++)
{
int a = m[j];
int b = m[j + 1];
if (a < b)
{
m[j] = b;
m[j + 1] = a;
}
}
}
return m; }
}
但是编译的时候是提示
paixu.java:12: 需要 <标识符>
public void swap(int [] data,i,i-1){
^
paixu.java:25: 需要 ')'
}
^
2 错误
不知道这是什么意思
import java.io.*;
public class paixu{
public void sort(int [] data){
for(int i=0;i<data.length;i++){
for(int j=data.length-1;j>i;j--){
if(data[j]<data[j-1]){
swap(data,j);
}
}
}
}
public void swap(int [] data,int i){
int a;
a=data[i];
data[i]=data[i-1];
data[i-1]=a;
}
public static void main(String args []){
int data []={5,3,9,8,6,7,1};
paixu a=new paixu();
a.sort(data);
for(int i=0;i<data.length;i++){
System.out.print(data[i]+" ");
}
}
}
1.命名最好用英文,paixu这样的方法名总觉得别扭
2.这样的基础算法可以用static,不需要实例一个对象
3.swap(int[] data,int i)这个方法不直观,不看方法体,不知道是要交换i和i-1,这里可以不用单独增加这个方法,直接在排序时交换,或者改成swap(int[] data,int i,int j)
的问题swap方法需要参数有问题另外 你这排序有点乱
改好如下:
import java.io.*; class paixu{
public static void sort(int [] data){
for(int i=1;i<data.length;i++){
for(int j=data.length-1;j>i;j--){
if(data[j]<data[j-1]){
swap(data,j,j-1);
}
}
}
}
public static void swap(int[] data,int i,int j) {
int a;
a = data[i];
data[i] = data[i-1];
data[i-1] = a;
}
public static void main(String args []) {
int data []={1,5,3,9,8,6,7};
sort(data);
for(int i=1;i<data.length;i++){
System.out.print(data[i]+" ");
}
}
}
public void sort(int [] data){
// 这个方法是可以优化的
// 如果对于以已经有序的情况,可以不用进行for(j=data.length-1...);这个内循环的
// 方法是在if语句中加上一个 flag 标志
// 当数据交换的时候 改变 flag,flag作为外循环的一个条件
for(i=1;i<data.length;i++){
//for(i=1;i<data.length && flag;i++){
for(j=data.length-1;j>i;j--){
if(data[j]<data[j-1]){
swap(data,j,j-1);
// flag = ?
}
}
}
}楼主 加油!