算法思想: 对于一个已排好序的数组,只要将新加入的元素插入到相应的位置,该数组仍是排序数组。算法实现:INSERTION_SORT(A) for i in 1 to lenthOf A -1 value = A[i] for j in i-1 to 0 ...
分类:
其他好文 时间:
2014-07-16 18:38:28
阅读次数:
163
直接插入排序:将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1...
分类:
其他好文 时间:
2014-07-16 17:32:03
阅读次数:
223
算法思想:分治法,将一个序列分为两部分,分别排序,然后合并已排序序列。算法实现: 1 MERGE_SORT(A,p,r) 2 mid = (p+r)/2 3 MERGE_SORT(A,p,mid) 4 MERGE_SORT(A,mid,r) 5 MERGE(A,p,m...
分类:
其他好文 时间:
2014-07-16 00:56:42
阅读次数:
355
插入排序1.直接插入排序原理:将数组分为无序区和有序区两个区,然后不断将无序区的第一个元素按大小顺序插入到有序区中去,终于将全部无序区元素都移动到有序区完毕排序。要点:设立哨兵,作为暂时存储和推断数组边界之用。实现:VoidInsertSort(NodeL[],intlength){Inti,j;/...
分类:
其他好文 时间:
2014-07-15 08:04:03
阅读次数:
188
1 函数简介
功 能: 使用快速排序例程进行排序
头文件:stdlib.h
用 法: void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));
参数: 1 待排序数组首地址
2 数组中待排序元素数量
3 各元素的占用空间大小
4 指向函数的指针,用于确定排序的顺序
...
分类:
编程语言 时间:
2014-07-14 18:39:16
阅读次数:
408
任意一个比较排序算法在最坏情况下,都需要做 Ω(n lg n) 次的比较,堆排序和合并排序都是渐进最优的比较排序算法。本文介绍三种以线性时间运行的算法:计数排序、基数排序和桶排序,这些算法都用非比较的一些操作来确定排序顺序。因此,下界 Ω(n lg n) 对它们是不适用的。
分类:
其他好文 时间:
2014-07-14 15:57:36
阅读次数:
263
算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个项目要Ο(nlogn)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(nlogn)算法更快,因为它的内部循环(innerloop)可以在大部分的架构上很有效率地....
分类:
其他好文 时间:
2014-07-14 15:56:17
阅读次数:
227
高速排序算法作者 July 二零一一年一月四日------------------------------------------ 写之前,先说点题外话。每写一篇文章,我都会遵循下面几点原则:一、保持版面的尽量清晰,力保排版良好。二、力争所写的东西,清晰易懂,图文并茂三、尽最大可能确保所写的东西精准...
分类:
其他好文 时间:
2014-07-14 15:45:57
阅读次数:
316
比较排序(Comparison Sort)通过对数组中的元素进行比较来实现排序。本文介绍常见的比较排序算法,包括插入排序(Insertion Sort)、希尔排序(Shell Sort)、快速排序(Quicksort)、冒泡排序(Bubble Sort)、鸡尾酒排序(Cocktail Sort)、奇...
分类:
其他好文 时间:
2014-07-14 10:41:39
阅读次数:
479
接上面的题目,假若待排序的数据有重复的呢?这里采用的是归并排序。1、算法分析: 1、稳定性:归并排序是一种稳定的排序。 2、存储结构要求:可用顺序存储结构。也易于在链表上实现。 3、时间复杂度: 对长度为n的文件,需进行lgn趟二路归并,每趟归并的时间为O(n),故其时间复杂度无论是在最好情况下还是...
分类:
其他好文 时间:
2014-07-13 20:35:20
阅读次数:
373