前提: 例如把4个数组成的数组a排成由小->大的排列
冒泡排序:
从前端开始,每两个下标相邻的元素为一组互相比较判断大小,保证每一组元素都是后边的比前边的大。最后保证整个数组的最后两个位置也都是后边比前边大之后第1遍冒泡就结束了,这时整个数组的最后一位就是这个数组中最大的数。然后同样的方法把结束冒泡的标志换成保证倒二和倒三都是后边比前边大之后第2遍冒泡就结束了,这时整个数组的倒数第二位就是这个数组中第二大的数。等到进行完多遍冒泡后整个数组就会全部排序好。
–ps–
1:如果想仅仅找到一个数组的最大值=只用1遍冒泡取数组最后的那个值
2.如果想把数组完全排成小到大来很多遍冒泡排序就可以了
3.每遍冒泡排序下来仅仅只能保证此遍冒泡终点那一位的元素是此遍冒泡历程中见过最大的数而已,前边所有位的数的序列没什么规律。(原因:比较过程中做的只是车轮战般的挑出更大的元素无脑在比较的原序列上往后扔,但是每次比较的时候放到左边的小元素到底比被眷顾的大元素小多少并没有被在意,所以每次比较只是把小元素在比较的原序列上放左面,小1和小2说不清谁大谁小却因为原序列的诧异一前一后。例如7,4,8,5->4,7,5,8)
4.
for(int i=0;i<=a.length-2;i++){
if (a[i]>a[i+1]){
int t=a[i];
a[i]=a[i+1];
a[i+1]=t; }
选择排序:
先锁定数组第一个位,遍历第二个元素到最后,遍历的时候遇见的元素只要比第一位的元素小就换到第一位。遍历一遍之后整个数组的第一位上放的就是整个数组的最小的数,之后锁定整个数组的第二位然后再遍历第三位到数组最后一位,多次遍历之后就可以得到排序好的序列。
–ps–
1.2.3.同冒泡排序
4.
for(int i=0;i<=a.length-2;i++){
for(int j=i+1;j<=a.length-1;j++){
if(a[j]<a[i]){
int t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
}