冒泡、(插入、希尔)、(选择、堆排)、快速、归并、桶排、基数、计数排序sort.h文件 #ifndef UNTITLED1_SORT_H #define UNTITLED1_SORT_H #include <iostream> #include <vector> #include <queue> u ...
转载
2021-08-17 13:14:00
255阅读
2评论
参考:用Python手写十大经典排序算法这或许是东半球分析十大排序算法最好的一篇文章
原创
2022-07-18 11:15:43
93阅读
1.非线性时间类排序(时间复杂度未突破0(nlog2n)0(nlog2n) 0(nlog_2n))不稳定的四个排序算法选择排序: 0(n2) 希尔排序: 0(n1.3) 快速排序:0(nlog2n)0(nlog2n) 0(nlog_2n) 堆排序:0(nlog2n)0(nlog2n) 0(nlog_2n)稳定的三个排序算法插入排序: 0(n2) 冒泡排序:0(n2) 归并...
原创
2021-08-26 13:43:53
338阅读
1. 十大排序算法 其中 冒泡,选择,归并,快速,希尔,堆排序属于比较排序 稳定性理解 如果相等的两个元素,在排序前后的相对位置保持不变,那么这是稳定的排序算法。 排序前:5,1,3(a),4,7,3(b) 稳定的排序:1,3(a),3(b),4,5,7 不稳定的排序:1,3(b),3(a),4,5 ...
转载
2021-10-10 18:51:00
92阅读
2评论
十大排序算法 1、冒泡排序(Bubble Sort) 冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 1.1 算法描述 比较相邻的元素。如果第一个比第二个大,就 ...
转载
2021-09-05 21:11:00
122阅读
2评论
冒泡排序作为十大排序之一,是一种简单且稳定的排序算法算法思想可以联想为向湖中下石头和较轻的石头变成泡泡上浮的过程想象每一块石头处在相应的高度,从上往下相邻两个石头进行比较,较大的石头往下沉,替代下一石头的位置较轻的石头像泡泡一样往上浮一个单位,直到这一轮最重的石头沉到湖底,此趟比较才结束此时,最重的石头已经再湖底,不需要再参加下一趟排序,可以想象为以及与湖底融为一体了可以得到,每次排序...
原创
2022-03-30 16:34:20
99阅读
冒泡排序作为十大排序之一,是一种简单且稳定的排序算法算法思想可以联想为向湖中下石头和较轻的石头变成泡泡上浮的过程想象每一块石头处在相应的高度,从上往下相邻两个石头进行比较,较大的石头往下沉,替代下一石头的位置较轻的石头像泡泡一样往上浮一个单位,直到这一轮最重的石头沉到湖底,此趟比较才结束此时,最重的石头已经再湖底,不需要再参加下一趟排序,可以想象为以及与湖底融为一体了可以得到,每次排序...
原创
2021-08-25 16:58:29
326阅读
代码如下: 快排'''几乎是我们学习排序入门算法了,两次遍历,时间复杂度较高n*n,稳定排序'''def bubbleSort(tmpList): for i in range(len(tmpList)-1): for j in range(len(tmpList)-1,i,-1): if tmpList[j-1] > tm...
原创
2021-05-28 17:08:19
353阅读
1. 十大排序算法
其中 冒泡,选择,归并,快速,希尔,堆排序属于比较排序
稳定性理解
如果相等的两个元素,在排序前后的相对位置保持不变,那么这是稳定的排序算法。
排序前:5,1,3(a),4,7,3(b)
稳定的排序:1,3(a),3(b),4,5,7
不稳定的排序:1,3(b),3(a),4,5,7
原地算法(In-place Algorithm)理解
定义:不依赖额外的资源或依
转载
2021-07-06 15:15:26
296阅读
0、开场
排序算法分为外部排序和内部排序。内部排序是指数据记录在内存中进行排序,而外部排序是排序的数据量很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序。
而对于内部排序,又可以分为稳定排序和不稳定排序。所谓稳定排序是指排序后2个相等值的顺序和排序前的顺序一样,不稳定排
原创
2021-07-08 10:53:46
886阅读
十大排序算法详解 参考程序员必知必会的十大排序算法详解 引言 对于排序的分类,可以将排序算法分为两大类:
转载
2021-08-02 17:55:00
107阅读
2评论
作为一名刚上大三的学生,还是希望能目光长远一点,将目标定于明年的春招,所谓,宝剑锋从磨砺出,梅花香自苦寒
原创
2022-07-29 10:54:06
81阅读
总结 算法分类 十种常见排序算法可以分为两大类: 比较类排序:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序 都属于比较排序。在排序的最终结果里,元素之间的次序依赖于它们之间的比较。每个数都必须和其他数进行比较,才能确定自己的位置。 优势:适用于各种规模的数据,也不在乎数据的分布
转载
2019-07-15 16:32:00
181阅读
2评论
排序方法最好时间复杂度最坏时间复杂度平均时间复杂度辅助空间复杂度稳定性博客链接直接插入排序O(n)O(n)O(n)O(n2)O(n^{2})O(n2)O(n2)O(n^{2})O(n2)O(1)O(1)O(1)稳定插入排序算法折半插入排序O(n)O(n)O(n)O(n2)O(n^{2})O(n2)O(n2)O(n^{2})O(n2)O(1)O(1)O(1)稳定折半插入排序算法直接选择排序O(n2)O(n^{2})O(n2)O(n2)O(n...
原创
2021-05-20 07:25:09
1530阅读
插入排序作为十大排序之一,是一种简单且稳定的排序算法算法思想相对直观,可以联想自己平常打扑克牌,发牌时自己边摸牌边整理牌顺序的场景算法思想:A[i] 与 A[i] 之前的元素 A[j逐个进行比较,如果 A[i]<A[j],则交换,否则 j++,A[j] 往后移一位,直到指针 i=j 时 A[j] 停止移动,A[i] 往后移一位,A[j] 重新从 0 开始到 i 依此类推,直...
原创
2021-08-26 09:29:55
156阅读
希尔排序(Shell Sort)基本思想:希尔排序也是一种插入排序,它是简单插入排序经st
原创
2022-10-28 12:05:36
73阅读
上篇博文我们用C++实现了十大排序算法今天我们来用Java实现一下经典的十大排序算法具体代码与文件可访问我的GitHub地址获取https://github.com/liuzuoping/AlgorithmsPS:欢迎star1 冒泡排序冒泡排序无疑是最为出名的排序算法之一,从序列的一端开始往另一端冒泡(你可以从左往右冒泡,也可以从右往左冒泡,看心情),依次比较相邻的两个数的大小(到...
原创
2021-07-09 10:51:19
219阅读
冒泡排序算法
冒泡排序是一种简单的排序算法,它的核心思想是将相邻的两个元素逐一比较,如果顺序不对就交换位置,直至整个序列变得有序。下面是冒泡排序的具体操作步骤:
比较相邻的两个元素。如果第一个元素比第二个元素大,就交换这两个元素;
对每一对相邻元素做同样的工作,从开始的第一对到结尾的最后一对;
针对所有的元素重复上述步骤,除了最后一个;
重复步骤 1~3,直至排序完成。
// 定义冒泡排序函数
原创
2023-07-19 13:34:05
101阅读
排序算法说明(1)排序的定义:对一序列对象根据某个关键字进行排序;输入:n个数:a1,a2,a3,…,an输出:n个数的排列:a1’,a2’,a3’,…,an’,使得a1’<=a2’<=a3’<=…<=an’。再讲的形象点就是排排坐,调座位,高的站在后面,矮的站在前面咯。(3)对于评述算法优劣术语的说明稳定:如果a原本在b前面,而a=b,排序之后a仍然...
原创
2021-06-17 15:46:14
278阅读