C语言数据结构学习笔记—排序与选择算法

1、简单排序算法

1.冒泡排序算法
基本思想:①每次比较相邻的两个元素。②将小的放在前面,大的放在后面。
例子:a[4]=4、2、3、1;
第一轮:2、3、1、4
第二轮:2、1、3、4
第三轮:1、2、3、4

两两排序让最大值放在最后。

代码思路
①实现第一轮的两两比较
在这里插入图片描述
②在①的基础上外循环①的比较,需要比较三轮
在这里插入图片描述
最后另外用for循环输出值即可。

2.插入排序算法
基本思想:拿后面的一个和前面的一个个作比较。2和1比,3和1、2比;小就插入,大就不变。
例子:a[4]={4,2,3,1};
第一轮:2、4、3、1;
第二轮:2、3、4、1;
第三轮:1、2、3、4;

代码思路:
① 后面的一个元素对前面的n个数元素进行一个个比较。所以元素越靠后,比较的次数越多。
即内循环比较次数要根据外循环而增加
在这里插入图片描述
3.选择排序算法
基本思想:在数列中,选择最小的移到第一个,然后再选择第二小 放在第二个……依次排序。
例子:a[4]={3,7,6,1};
第一轮:1、7、6、3;
第二轮:1、3、6、7;
第三轮:1、3、6、7;

代码思路
①用循环让第一个元素对后面的依次比较,找出最小的元素位置。
记录最小元素的位置和第一个交换。
然后外循环按步骤进行后面排序。
在这里插入图片描述

4.简单排序算法的复杂性
以上最坏情况需要O(n2)时间。

2、快速排序算法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值