这三种排序算法分别是桶排序、计数排序和基数排序,之所以它们的时间复杂度能到达O(n),是因为它们都是非基于比较的排序算法,不涉及元素之间的比较操作。 1 桶排序 1.1 原理 将待排数据元素分配到几个有序的桶中,然后对每个桶中的数据元素分别进行排序,每个桶中的数据元素有序后按桶的顺序将数据元素依次取 ...
分类:
编程语言 时间:
2020-06-16 20:03:08
阅读次数:
101
对各种内排序算法进行了整理,不足的日后补充。 1.冒泡排序 冒泡排序属于交换排序,其基本思想是通过无序区中相邻元素关键字间的比较和位置的交换使关键字最小的元素如气泡一般逐渐往上“漂浮”至“水面”,该算法时间复杂度为O(n^2)。 伪代码如下: C++代码如下: 运行结果: 2.梳排序 梳排序是冒泡排 ...
分类:
编程语言 时间:
2018-08-22 16:58:20
阅读次数:
188
堆排序 时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte总提交 : 414 测试通过 : 220 比赛描述 给定输入排序元素数目n和相应的n个元素,写出程序,利用内排序算法中堆排序算法进行排序,并输出排序最后结果的相应序列。 输入 共两行,第 ...
分类:
编程语言 时间:
2016-04-10 17:45:47
阅读次数:
148
排序:对一序列对象根据某个关键字进行排序;
稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;
例如:插入排序、冒泡排序、归并排序、计数排序、基数排序、桶排序
不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;
例如:选择排序(5 8 5 2 9)、快速排序、堆排序
内排序:不占用额外内...
分类:
编程语言 时间:
2015-08-16 23:12:27
阅读次数:
172
快速排序时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KB比赛描述给定输入排序元素数目n和相应的n个元素,写出程序,利用内排序算法中快速排序算法进行排序,并输出排序最后结果的相应序列。输入 共两行,第一行给出排序元素数目n,第二行给出n个元素...
分类:
编程语言 时间:
2015-07-22 12:23:08
阅读次数:
132
转自:http://www.2cto.com/kf/201307/225189.html 内排序算法我们学了很多,快速排序、冒泡排序等。这些排序的前提是数据量不大,能够全部读进内存里。外排序是指对大数据量进行排序,数据量大到不能全部读进内存里,必须在内存和外存间换进换出进行排序。最常用的外排序...
分类:
编程语言 时间:
2015-06-18 19:41:04
阅读次数:
208
1. 分类2. 7种内排序算法的各种指标排序方法平均情况最好情况最坏情况辅助空间稳定性移动次数的平均情况移动次数的最好情况移动次数的最坏情况冒泡排序O(n2)O(n)O(n2)O(1)稳定O(n2)0O(n2)简单选择排序O(n2)O(n2)O(n2)O(1)稳定O(n)0O(n)直接插入排序O(n...
分类:
编程语言 时间:
2015-03-10 23:03:32
阅读次数:
353
一、基本概念 所谓排序,就是将原本无序的一个序列重新排列成为有序的序列。 所谓排序算法的稳定性,就是指待排序的序列中有两个或者两个以上的相同的项,在排序前和排序后的相对位置有没有发生变化。如果没有发生变化,那么就是稳定的,反之,则不稳定。
分类:
编程语言 时间:
2015-03-05 01:34:30
阅读次数:
146