最近忙着复习找工作,熟悉了下排序算法,动手写了一下,发现有些问题的边界条件还是没有考虑清楚,不过好在调试成功。不稳定排序:堆排序,快速排序,希尔排序;稳定排序:插入排序,冒泡排序,选择排序,归并排序,基数排序等。插入排序算法代码:void InsertSort(int A[],int n){ ...
分类:
其他好文 时间:
2014-08-28 19:39:25
阅读次数:
287
过程记录4个月前C语言版的七大排序算法实践让我在写C++版时轻车熟路。特别是冒泡,插入,希尔,选择这四种排序不用调试即运行成功。输出的效果与C语言做的版本完全一样,其中令我印象深刻的是,cout对浮点的处理远不如printf简单明了。非常让开发者难受。写C++版时有所改进。#define sortf...
分类:
其他好文 时间:
2014-08-28 12:55:29
阅读次数:
250
日常操作中常见的排序方法有:冒泡排序、快速排序、选择排序、插入排序、希尔排序,甚至还有基数排序、鸡尾酒排序、桶排序、鸽巢排序、归并排序等。冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就...
分类:
编程语言 时间:
2014-08-25 21:07:44
阅读次数:
373
排序常用的算法有:插入算法(直接插入算法、折半插入算法、希尔算法)、选择算法(简单选择算法、堆排序算法)、快速算法(冒泡排序、快速排序算法)以下程序给出了各种算法的实现,其接口为voidsort(int*array,intlen),每个文件实现一个算法,最后和main.c文件编译实现。1、直..
分类:
其他好文 时间:
2014-08-22 18:12:10
阅读次数:
273
希尔排序分析:
最优时间复杂度:O(n) 顺序的情况下
最坏时间复杂度:O(nlog^2n)
平均时间复杂度:根据增量不同而不同
最坏空间复杂度:O(n)
稳定性:不稳定...
分类:
其他好文 时间:
2014-08-22 16:26:49
阅读次数:
137
这题前一阵子就看到了,一直没时间做,昨晚睡前想了想,要求n*log(n)以内的时间复杂度,第一时间想到的就是归并、快排和希尔排序(注:希尔排序时间为O(n^1.3),在数据量大于2的情况下小于n*log(n)),个人以为,链表的特性更适合归并,所以采用归并排序,实现的merge代码如下:publ.....
分类:
其他好文 时间:
2014-08-21 19:01:54
阅读次数:
226
经典的排序算法有十种,分别是:选择排序、插入排序、希尔排序、冒泡排序、堆排序、合并排序、快速排序、计数排序、基数排序和桶排序。
下面对这些算法分类如下:
选择排序:简单选择排序、堆排序
插入排序:直接插入排序、二分插入排序、希尔排序
快速排序:快速排序、随机化快速排序
线性时间排序:计数排序、基数排序、桶排序
其他:冒泡排序、合并排序
这些排序排序算法的时间复杂度,稳...
分类:
其他好文 时间:
2014-08-20 16:31:32
阅读次数:
185
希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。
希尔排序是基于插入排序的以下两点性质而提出改进方法的:
插入排序在对几乎已经排好序的数据操作时, 效率高, 即可以达到线性排序的效率但插入排序一般来说是低效的, 因为插入排序每次只能将数据移动一位...
分类:
编程语言 时间:
2014-08-19 14:34:44
阅读次数:
303
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。 本文将依次介绍上述八大排序算法。算.....
分类:
其他好文 时间:
2014-08-19 14:31:04
阅读次数:
280
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 常见的内部排序算法有:插入排序、希尔排序...
分类:
其他好文 时间:
2014-08-18 16:40:04
阅读次数:
267