1.不稳定的排序-选择排序
选择排序概念:将第0小的数移动到arr[0],将第1小的数移动到arr[1],一次类推通过循环完成排序。
因为可能会移动相同数据的位置,称之为不稳定。
代码理解:
假设一个arr1[5]={4,2,1,3,5};,需要将最小的数值先移动到arr1[0]的位置。需要定义一个min值来保存取得的最小值,min_index记录min值所在的下标。
第一轮比较:
假设min=arr1[0]=4,同2比较,2<4,min=2;
min同1比较,1<2,min=1
min同3比较,3>1,min保持
min同5比较,5>1,min保持
int arr1[5]={
4,2,1,3,5};
int min = arr1[0];
int min_index = 0;
for(int i=1;i<5;i++){
if(min>arr1[i]){
min = arr1[i];
min_index = i;
}
}
arr1[min_index] = arr1[0];
arr1[0] = min;
这是第一轮循环,下一轮的时候:1,2,4,3,5
设min=arr1[1];第三轮即min=arr1[2];只需要移动到arr1[3]的位置即停止。
外部再嵌入循环,如下代码:
int arr1[5]={