一个是先明确左边,一个是先明确右边;
一个是选择排序,一个是相邻排序;
选择排序:
1.先明确左边的值,(如果是从大到小排序,那就先明确最大值)
//通过x来限制左边的值的位置
for(x=0;x<arr.length-1;x++){
//通过y值来限制右边的值的位置
for(y=x+1;y<arr.length;y++){
//拿左边的值和右边的值对比
if(arr[x]<arr[y]){
//置换位置
}
}
}
冒泡排序:
2.先明确右边的值,(如果是从大到小排序,那就先明确最小值)
//通过x来限制循环的次数
for(x=0;x<arr.length-1;x++){
//通过y来限制左边的值的位置
for(y=0;y<arr.length-1-x;y++){
if(arr[y]<arr[y+1]){
//置换位置
}
}
}
总结:
选择排序,外循环条件限制内循环的初始值,使得每次循环左边值的起始位置都不同;
冒泡排序,外循环条件限制内循环的循环条件,使得每次循环次数都不同;
外循环条件减1是因为左边值的位置比右边小1;
冒泡排序,内循环条件减1,是因为右边的值的位置比左边的大1,为了避免角标越界,就加减1;