C语言冒泡(起泡)排序与选择排序的循环条件区别
冒泡排序(写法1):
i = 0; i < n-1; ++i{
flag = true;
j = 0; j < n-1-i; ++j{//从前面开始冒泡
if( arr[j] < arr[j+1] ){
交换;//小的放后面
flag = false;
}
}
if(flag == true){break;}//若没有交换,则代表已完成排序
}
冒泡排序(写法2):
i = 0; i < n-1; ++i{
flag = true;
j = n-1; i < j; --j{//从后面开始冒泡
if( arr[j] < arr[j-1] ){
交换;//小的放前面
flag = false;
}
}
if(flag == true){break;}//若没有交换,则代表已完成排序
}
选择排序:
i = 0; i < n-1; i++
min = i;//从未排序区中,选择最目前最小者
j = i; j < n-1; j++
if( arr[min] > arr[j] ){
min = j;
}
if(i != min){
arr[min]与 arr[i]交换;
}