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

2017-12-16  本文已影响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;

}

}

上一篇下一篇

猜你喜欢

热点阅读