排序
文章平均质量分 85
Hyt的笔记本
这个作者很懒,什么都没留下…
展开
-
【排序】对各种排序的总结
简单排序》(含:冒泡排序,直接插入排序,选择排序,计数排序)《希尔排序》《堆排序》《快速排序》《归并排序》我会再对他们的时间复杂度、空间复杂度以及稳定性再做一次总结,并且在不同的场景下,测试他们的性能怎么样。原创 2024-01-11 22:01:35 · 942 阅读 · 0 评论 -
【排序】归并排序(C语言实现)
归并排序(MERGE - SORT)是建立在归并操作上的一种有效的排序算法, 该算法是采用分治法(Divide andConquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。所以在平时我们要使用归并排序时,使用递归版的完全够用了。但由于现在还在学习阶段,所以掌握一下非递归版的归并排序还是有必要的。可以像我们之前讲的快速排序的非递归一样使用栈吗?这里实现非递归的归并排序使用栈其实不是很好的方式,反而会使问题变复杂。原创 2024-01-11 22:00:37 · 377 阅读 · 0 评论 -
【排序】快速排序(C语言实现)
任取待排序元素序列中的某元素作为基准值,按照该排序码将待排序集合分割成两子序列,左子序列中所有元素均小于基准值,右子序列中所有元素均大于基准值,然后最左右子序列重复该过程,直到所有元素都排列在相应位置上为止。Hoare思想挖坑法前后指针法三路划分以及快速排序的一些小优化,和递归与非递归的实现方式。阅读本章建议有一点二叉树的基础,如果对二叉树不太了解的可以看看:《初阶二叉树》这篇文章快速排序整体的综合性能和使用场景都是比较好的,所以才敢叫快速排序时间复杂度:O(N*logN)原创 2024-01-11 22:00:03 · 996 阅读 · 0 评论 -
【排序】堆排序(C语言实现)
本章主要会讲堆排序的实现过程以及向上调整和向下调整的时间复杂度,在学习本章前,需要对堆、以及向上调整和向下调整有一个了解,如果不了解的话可以先看看这篇文章:《堆的实现及TOP-K问题》原创 2024-01-02 18:49:45 · 495 阅读 · 1 评论 -
【排序】希尔排序(C语言实现)
本章将详细介绍希尔排序的思想及实现,由于希尔排序是在插入排序的思想上进行升华,所以如果不知道插入排序或者不熟悉的可以先看看这篇文章:《简单排序》中的直接插入排序。原创 2023-11-29 23:11:48 · 300 阅读 · 0 评论 -
【排序】简单排序(C语言实现)
我们常见的排序算法有下面这几种:在这几种算法中,有比较简单的,有也比较复杂的,所以这里我打算把简单的排序整合成一篇文章,比较难的我会单独写成一篇我们在讲排序算法的时候会提到稳定性的概念。⭐️:这里提一下:相同的数据排序后,相对位置是否发生变化。原创 2023-11-21 01:54:48 · 115 阅读 · 2 评论