美文网首页
冒泡排序 选择排序 基础详细版

冒泡排序 选择排序 基础详细版

作者: 留下的是物离开的是人 | 来源:发表于2017-12-16 15:48 被阅读0次

    冒泡排序(两两交换)

    int [] number ={1,3,8,4,2,4,2,3};

    1         1  3  4  2  4  2  3  8;

    2         1  3  2  4  2  3  4  8

    3         1  2  3  2  3  4  4  8

    4         1  2  2  3  3  4  4  8

    5         1  2  2  3  3  4  4  8

    6         1  2  2  3  3  4  4  8

    7         1  2  2  3  3  4  4  8

    8         1  2  2  3  3  4  4  8

    /** * 冒泡排序 *   (注释:循环先看里面.控制两两交换位置;  里面的循环执行一次数组结果就是   上面的第一遍 .所有要想得到我们想要的,就得多次循环; 所有第一个循环的作用就是;控制第二个循环的次数..)


    int leng = number.length;//数组长度


    int temp = 0;//交换变量


    for (int i = 0; i < leng - 1; i++) {


    for (int j = 0; j < leng - 1 - i; j++)        //leng-1: 当交换到最后一位时.j+1  所有在这里-1 是为了控制数组不会越界    -i:是为了减少重复的循环,因为每次循环一次.最大的都会跑到最后,最后一次不用再比较.所以-1;


    { if (numbers[j] > numbers[j + 1]) {      //判断相邻两个数的大小   .第一个比第二个大.交换位置


                temp = numbers[j];     


                numbers[j] = numbers[j + 1];


                numbers[j + 1] = temp;


    }


    }


    }


    }


    选择排序:

    第一次选择最小的.放在下标为0的位置;

    第二次选择次小的.放在下标为1的位置

    以此类推;

    int [] a ={1,3,8,4,2,4,2,3};

    1         1  3  8  4  2  4  2  3

    2         1  2  8  4  2  4  3  3

    3         1  2  2  4  8  4  3  3

    4         1  2  2  3  8  4  4  3

    5         1  2  2  3  3  4  4  8

    6         1  2  2  3  3  4  4  8

    7         1  2  2  3  3  4  4  8

    8         1  2  2  3  3  4  4  8

    for(int i=0;i

    int small =a[i];    声明一个最小的数

    int index=-1;    记录更小数的下标

    for(int j=i+1;j

    if(small>a[j]){    判断是否有比最小数还小的数

    small=a[j];    设置更小的数

    index=j;       记录最小数的下标

    }

    }

    if(index !=-1){   判断是否有这个数

    //交换位置

    a[index]=a[i];

    a[i]=small;

    }

    }

    相关文章

      网友评论

          本文标题: 冒泡排序 选择排序 基础详细版

          本文链接:https://www.haomeiwen.com/subject/tnwgjxtx.html