目录(?)[-] 目录(?)[-] 概述 插入排序直接插入排序Straight Insertion Sort 插入排序希尔排序Shells Sort 选择排序简单选择排序Simple Selection Sort 选择排序堆排序Heap Sort 交换排序冒泡排序Bubble Sort 交换排序快速 ...
分类:
编程语言 时间:
2016-12-30 11:38:29
阅读次数:
263
八大排序算法的稳定性及复杂度总结如下: 选择排序算法准则 每种排序算法都各有优缺点。因此,在实用时需根据不同情况适当选用,甚至可以将多种方法结合起来使用。 影响排序的因素有很多,平均时间复杂度低的算法并不一定就是最优的。相反,有时平均时间复杂度高的算法可能更适合某些特殊情况。同时,选择算法时还得考虑 ...
分类:
编程语言 时间:
2016-11-09 12:44:46
阅读次数:
153
概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比 ...
分类:
编程语言 时间:
2016-11-03 13:58:48
阅读次数:
268
冒泡排序: 据说是八大排序中的其一,通俗的意思就是讲,在一组数据中,相邻元素依次比较大小,最大的放后面,最小的冒上来(or 反过来) 冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直 ...
分类:
编程语言 时间:
2016-11-03 09:51:10
阅读次数:
362
八大排序算法 八大排序算法 标签: 算法mergepivot存储exchange 2012-07-23 16:45 428501人阅读 评论(126) 收藏 举报 标签: 算法mergepivot存储exchange 2012-07-23 16:45 428501人阅读 评论(126) 收藏 举报 ...
分类:
编程语言 时间:
2016-10-25 18:38:49
阅读次数:
166
基本思想: 在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。 算法实现:(HDU 1040 亲测 AC) #include<iostream> usi ...
分类:
编程语言 时间:
2016-09-22 00:55:03
阅读次数:
214
堆排序是一种树形选择排序,是对直接选择排序的有效改进。 基本思想: 堆的定义如下:具有n个元素的序列(k1,k2,...,kn),当且仅当满足 时称之为堆。由堆的定义可以看出,堆顶元素(即第一个元素)必为最小项(小顶堆)。 若以一维数组存储一个堆,则堆对应一棵完全二叉树,且所有非叶结点的值均不大于( ...
分类:
编程语言 时间:
2016-09-20 23:43:04
阅读次数:
189
基本思想: 在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。 简单选择排序的示例: 操作方法: 第一趟,从n 个记录中找出关键码最小的记 ...
分类:
编程语言 时间:
2016-09-19 23:59:12
阅读次数:
292
希尔排序是1959 年由D.L.Shell 提出来的,相对直接排序有较大的改进。希尔排序又叫缩小增量排序 基本思想: 先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行依次直接插入排序。 操作方法: 算法实现: 我们简单处理增量序列:增 ...
分类:
编程语言 时间:
2016-09-18 19:30:54
阅读次数:
164
基本思想: 将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。 要点:设立哨兵,作为临时存储和判断数组边界之用。 如果碰见一个和插入元素相等的,那么插入元素把想插入的元素放在相等 ...
分类:
编程语言 时间:
2016-09-17 22:02:54
阅读次数:
102