![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
十大排序算法
文章平均质量分 51
排序算法
weixin_53163894
这个作者很懒,什么都没留下…
展开
-
排序算法的稳定性
原理是(最简便的操作)以第一个元素为基准,在后面的所有元素中进行前后夹击,从开头可末尾一个一个取元素和基准作比较,前面进攻的遇到比基准大的停下来,后面进攻的遇到比基准小的停下来,这时候,如果前面的还在前面,后面的还在后面,基准原地不动,交换这两个被攻击到的元素;如果前面进攻的和后面进攻的攻击的是同一个元素或前面进攻的攻到了后方友军的身后,就把后方友军进攻的元素和基准作交换,并以基准当前的位置断开,基准休息,前面的序列和后面的序列再打一遍,打到只剩一个敌人。堆排序,快速排序,希尔排序,选择排序。转载 2023-06-18 17:16:28 · 65 阅读 · 0 评论 -
排序算法-选择排序
它的工作原理是:第一次从待排序的中数据元素选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。在选择排序中,每趟都会选出最大元素与最小元素,然后与两端元素交换,此时,待排序序列中如果存在与原来两端元素相等的元素,稳定性就可能被破坏。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。原创 2023-03-23 17:59:00 · 57 阅读 · 0 评论 -
排序算法-冒泡排序
选择排序关键点:两层循环,外循环代表有多少个数进行多少轮,内循环是依次比较大小满足条件则交换位置。在比较交换操作过程中,如果第一个元素大于第二个元素,我们才交换两个元素,两个元素相等时,保持不变。所以两个相等的元素在排序前后的相对位置并不会发生变化,所以冒泡排序是稳定排序算法。时间复杂度:最坏情况:O(N^2)最好情况:O(N)空间复杂度:O(1)原创 2023-03-23 17:38:58 · 89 阅读 · 0 评论 -
十大排序算法——快速排序
while (templeft < tempright && array[tempright] >= temp)//右游标值大于等于基准值则右游标值-1。while (templeft < tempright && array[templeft] = right)//此时递归结束,排序完成。//取第一个数为基准值。原创 2023-02-17 14:26:15 · 71 阅读 · 0 评论 -
排序算法-插入排序
+i)//遍历右边未排序区的数,n个数遍历n-1次(左边第一个默认已排序)for (int j = i - 1;j--)//从排序区的最后一个数开始依次往前。//取下未排序区的第一个数。if (temp < array[j])//找到目标位置。从第二个数开始依次取出与左边的数比较大小,满足条件则插入目标位置。注意: j >= 0是到第一个数为止,j--是从后往前。两层循环,外循环代表有n个数进行n-1轮,内循环是。# 一、插入排序基本原理。原创 2023-02-14 10:42:39 · 56 阅读 · 0 评论