在算法中最常用的排序法主要由冒泡排序法和选择排序法,这两种最主要的目的是可以方便地从大到小或者从小到大排序。
选择排序法
选择排序法是固定一个确定的值,跟剩下的数值进行比较,符合条件进行交换
这边需要用到两个for循环
假如一组数据:22,55,68,95,64 从大到小排序
两个循环语句:
for(i=0;i<len-1;i++){ //len为数组的长度
for(j=i;j<len;j++){
.....
}
}
第一轮排序结果:95 55 68 22 64 ——i=0,j=1
第二轮排序结果:95 68 55 22 64 ——i=1,j=2
第三轮排序结果:95 68 64 22 55 ——i=2,j=3
第四轮排序结果:95 68 64 55 22 ——i=3,j=4
i的循环结束的条件为i<len-1
j的循环结束的条件为j<len
数的比较:
if(array[i]<array[j]){
temp=array[i];
array[i]=array[j];
array[j]=temp;
}
冒泡排序法
主要是通过两个数之间的比较并交换
两个循环语句:
for(i=0;i<len-1;i++){
for(j=0;j<len-i-1;j++){
....
}
}
第一轮排序结果:55 68 95 64 22 ——i=0,j=4
第二轮排序结果:68 95 64 55 22 ——i=1,j=3
第三轮排序结果:95 68 64 55 22 ——i=2,j=2
第四轮排序结果:95 68 64 55 22 ——i=3,j=1
if(array[j]<array[j+1]){
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}