![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序算法
紫沐华庭
夜夜琴语
琴伴我身
展开
-
选择排序 堆排序
堆排序演示原创 2021-11-18 21:13:07 · 474 阅读 · 0 评论 -
冒泡排序 快速排序
交换排序交换排序一般对待排序数组中的元素两两比较,不满足条件则交换,直到排序完成。典型的交换排序有:冒泡排序和快速排序冒泡排序在冒泡排序过程中,数组的尾部会渐渐有序,有序的数组尾部慢慢边长,我把渐渐有序部分称为有序子数组,其余部分称为无序子数组,便于理解。冒泡排序每一次大循环都会筛选出无序子数组中最大(小)的值放入有序子数组中,当一次大循环判断后,无序子数组有序时,循环可以中断。可以让flag=1,在无序子数组已经有序时flag=0,排序完成,减少非最坏情况下比较次数。冒泡排序代码void原创 2021-11-17 15:41:08 · 348 阅读 · 0 评论 -
二路归并排序
二路归并排序算法思路代码思路代码中用了递归思路和非递归思路两种函数实现二路归并递归思路:下图非递归思路:下图中的合并部分以上图片来源为:B站某up主,如有侵权请联系我删除代码// 作用为合并两个相邻的有序子数组// left right都为下标void MergeList(int A[], int left_low, int left_high, int right_low, int right_high){ int *Result = A + left_low; in原创 2021-11-14 14:44:53 · 952 阅读 · 0 评论 -
插入排序 折半插入排序 希尔排序
插入排序在有序的数组插入新的数直接插入排序把A[0]看成有序的,从第二个数开始不断插入折半插入排序原创 2021-11-15 21:12:47 · 833 阅读 · 0 评论