常见排序算法

1、插入排序

直接插入排序,是一种最简单的排序方法,它的基本操作是将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1的有序表。

初始	38	65	27	76	13

i=1		13						选13为监视哨并假设为一个有序序列
i=2		13	38					待插入元素38>13
i=3		13	38	65				待插入元素65>38
i=4		13	27	38	65			待插入元素13<27<38
i=5		13	27	38	65	76 		待插入元素76>65

2、快速排序

冒泡排序

原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,
这样一趟过去后,最大或最小的数字被交换到了最后一位,。

初始关键字	49	38	65	97	76	13	27			

第一趟排序过程:
			38	49	65	97	76	13	27	//38和49比较	交换顺序
			38	49	65	97	76	13	27	//49和65比较	不交换顺序
			38	49	65	97	76	13	27	//65和97比较	不交换顺序
			38	49	65	76	97	13	27	//97和76比较	交换顺序
			38	49	65	76	13	97	27	//97和13比较	交换顺序
			38	49	65	76	13	27	97	//97和27比较	交换顺序
			
第一趟排序		38	49	65	76	13	27	97
第二趟排序		38	49	65	13	27	76	97
第三趟排序		38	49	13	27	65	76	97
第四趟排序		38	13	27	49	65	76	97
第五趟排序		13	27	38	49	65	76	97


快速排序


3、选择排序法

简单选择排序法

与冒泡法比较。选择排序每一趟,只交换一次。

简单选择排序法	
min(最小值下标),内层循环结束后比较min与i是否相等,不相等交换,相等不交换。
外层循环下标	i=1至i=5	
内层循环下标	j=i+1至j=6
初始关键字		9	1	5	8	3	7
第一趟排序		1	9	5	8	3	7	i=1	min=1,j=2开始j++内层循环结束	min=2	交换顺序
第二趟排序		1	3	5	8	9	7	i=2	min=2,j=3开始j++内层循环结束	min=5	交换顺序
第三趟排序		1	3	5	8	9	7	i=3	min=3,j=4开始j++内层循环结束	min=3 不交换顺序
第四趟排序		1	3	5	7	9	8	i=4	min=4,j=5开始j++内层循环结束	min=6	交换顺序
第五趟排序		1	3	5	7	8	9	i=5	min=5,j=6开始j++内层循环结束	min=6	交换顺序



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值