int[] some=new int[]{20,70,35,46,32,47,39,45,21}
int len=some.length;
for(int i=1;i<len;i++){
int data=some[i];
int j=i;
for(;j>0;j--){
int the=data[j-1];
if(the>data){
data[j]=the;
}
else break;
}
some[j]=data;
}

解决方案 »

  1.   

    int[] some=new int[]{20,70,35,46,32,47,39,45,21}
    int len=some.length;
    for(int i=1;i<len;i++){
    int data=some[i];
    int j=i;
    for(;j>0;j--){
    int the=data[j-1];
    if(the>data){
    data[j]=the;
    }
    else break;
    }
    some[j]=data;
    }
      

  2.   

    int data=some[i];
    int the=data[j-1];
    这两个语句不理解。
    上面生命data变量是整型数据。
    下面使用的时候,data变成了整型数组。
      

  3.   


    int[] some=new int[]{20,70,35,46,32,47,39,45,21}
    int len=some.length;
    for(int i=1;i<len;i++){
        int data=some[i];
        int j=i;
        for(;j>0;j--){
            int the=data[j-1];
            if(the>data){
                data[j]=the;
            }else{
                break;
            }
        }
        some[j]=data;
    }
      

  4.   

    这不是冒泡排序,是直接插入排序。LZ的程序有点问题: data[j]=the;改成some[j]=the; 另外,所有的简单排序都是需要交换数据的。LZ的理解有点问题,数据交换不是一定要长成下面这个摸样:
    temp=data1;
    data1=data2;
    data2=temp;
      

  5.   

    编译肯定通不过的,声明data是一个整型变量,下面却变成了data[]一维整型数组。
      

  6.   

    先顶一下,再说你这个算法。你的算法比冒泡算法时间复杂度高!
    冒泡排序是经过n-1趟子排序完成的,第i趟子排序从第1个数至第n-i个数,若第i个数比后一个数大(则升序,小则降序)则交换两数。而你的算法,最坏情况下需要n*n次排序才能完成。
      

  7.   


    public class BubbleSort {

    public void bubble(int[] source){
    if(source == null || source.length == 0){
    return;
    }
    int len = source.length;
    for (int i = 1; i < len; i++) {
    int data = source[i];
    int j = i;
    for (; j > 0; j--) {
    int the = source[j - 1];
    if (the > data) {
    source[j] = the;
    } else
    break;
    }
    source[j] = data;
    }

    }


    public static void main(String[] args) {
    int[] some = new int[]{20,70,35,46,32,47,39,45,21};
    new BubbleSort().bubble(some);
    for (int i = 0; i < some.length; i++) {
    System.err.println(some[i]);
    }
    }}