【笔记】C_数组排序(选择排序和插入排序)

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]={
   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值