排序算法——冒泡,选择,插入,堆

本文详细介绍四种常见的排序算法:冒泡排序、选择排序、插入排序及堆排序。通过具体原理阐述帮助理解每种算法的工作方式,便于读者掌握这些基本排序方法。

一、冒泡排序

【原理:从头至尾对相连的数字进行两两比较,比较完之后,将较小的数字放在左边,较大的数字放在右边,比较的次序是(假设有N个数字):1-2,1-3,1-4,...1-N,2-1,2-2,...2-N,...(N-1)-N,需要两次循环】

 

 

二、选择排序

【原理:顾名思义,选择排序就是指从数字中选出最小的放在最左边,我们人类平时自然进行排序时就是用的这种方法,因为这种方法最直观。选择的数字段是(假设有N个数字):从1~N号数字中选出最小的数字与1号位数字进行交换,然后从2~N号数字钟选出最小的数字与2号位数字进行交换,...从N-1~N号数字中选出最小的数字与N-1号位数字进行交换,需要两次循环】

 

 

三、插入排序

【原理:这种排序类似于我们平时打扑克牌时在手中插排扑克的方法,就是不断的从后面的数字中抽出数字插队到之前的已经排好顺序的数列中去,插排的次序:第一趟,第一个数字不动;第二趟,抽出2号数字与1号比较,插到适合的位置;第三趟,抽出3号数字与之前的数字进行比较,然后插队到适合的位置,然后将插队位置之后的数字顺势向后挪一位;...第N趟,...】

 

 

四、堆排序

【原理:堆是一种数据结构,一种完全二叉树(所有根节点子叶中可以左右孩子成双存在,可以做孩子单独存在,但是绝对不可以右孩子单独存在,并且全部的子叶都优先排在左边,根节点必须大于叶节点),这种排序,首先是要建立堆,然后再调整顺序,就这样循环进行,直到排序完毕。

建立堆:对堆的所有基础堆进行分析,将子叶中较大的数字与根节点交换;

调整顺序:(假设我们是从小到大排序)先对1~N号数字建立堆,将最大的数字挪至1号位置,然后将1号位置的最大数与 N号位置的数字进行交换,接下来是对1~N-1,1~N-2,...1~2号数字进行相似的处理.....

 

{具体代码详见文档}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值