各种排序算法最好和最坏情况比较

发布于:2019-05-31   编辑:admin 浏览:

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部都不知道怎么回答,各种排序说的也太多了,这里讲几种简单的吧,希望对你有帮助!

  比如n个顺序存储元素进行排序,a[0]做“哨兵”(即a[0]不存数据,而是用作辅存空间使用)的情况

  2 折半插入排序:比较次数 最少与最多同,都是n*log2n(其中2为底,下边表示同),

  移动次数 最少0,最多时间复杂度为O(n2);(n的平方,以下也如此表示);

  7 2-路归并排序:比较和移动次数没有好坏之分,都是O(n*log2n);

  另外还有很多的排序方法如 希尔排序,基数排序,2-路插入排序 等等很多的排序方法,这里就不一一列举了,希望列举的对你有帮助!!

  都不知道怎么回答,各种排序说的也太多了,这里讲几种简单的吧,希望对你有帮助!比如n个顺序存储元素进行排序,a[0]做“哨兵”(即a[0]不存数据,而是用作辅存空间使用)的情况1 直接插入排序:比较次数 最少n-1次;最多(n-1)(n+2)/2移动次数 最少0; 最多(n-1)(n+4)/2使用一个辅助存储空间,是稳定的排序;2 折半插入排序:比较次数 最少与最多同,都是n*log2n(其中2为底,下边表示同),移动次数 最少0,最多时间复杂度为O(n2);(n的平方,以下也如此表示);使用一个辅助存储空间,是稳定的排序;3 冒泡排序: 比较最少为:n-1次,最多时间复杂度表示为o(n2);移动次数最少为0,最多时间复杂度表示为O(n2);

  7 2-路归并排序:比较和移动次数没有好坏之分,都是O(n*log2n);

  另外还有很多的排序方法如 希尔排序,基数排序,2-路插入排序 等等很多的排序方法,这里就不一一列举了,希望列举的对你有帮助!

  数据量如果极大,选堆排比较好,其余选快排;如果考虑数据的先后顺序不变,则千万别用快排,用了满分就没有了。其他的,一般掌握希尔排序,冒泡排序,选择排序,插入排序,小学生排序(如果基类型很大,则非常浪费空间,这是最好选希尔可以解决这个问题)。没有什么限制,一般都选快排。

  我一般写快排,谁叫它好写(加点随机化都会是O(nlogn)的),你要是不放心,有堆排,归并排序,重复的多了用桶排。以后会学到更多的排序,还可以几个排序合在一起,这都等以后在说。