排序
文章平均质量分 75
tianmo2010
这个作者很懒,什么都没留下…
展开
-
各种排序算法的总结和比较
排序是数据处理中经常使用的一种重要运算,在计算机及其应用系统中,花费在排序上的时间在系统运行时间中占有很大比重;并且排序本身对推动算法分析的发展也起很大作用。目前已有上百种排序方法,但尚未有一个最理想的尽如人意的方法,本章介绍常用的如下排序方法,并对它们进行分析和比较。1、插入排序(直接插入排序、折半插入排序、希尔排序);2、交换排序(起泡排序、快速排序);3、选择排序(直接选择排原创 2012-02-17 15:57:33 · 1101 阅读 · 0 评论 -
排序方法及其稳定性分析
首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果Ai = Aj, Ai原来在位置前,排序后Ai还是要在Aj位置前。 其次,说一下稳定性的好处。排序算法如果是稳定的,那么从一个键上排序,然后再从另一个键上排序,第一个键排序的结果可以为第二个键排序所用。基数排序就 是这样,先按低位原创 2012-04-09 12:45:10 · 798 阅读 · 0 评论 -
堆排序详解与算法实现
一、堆介绍堆排序利用了大根堆(或小根堆)堆顶记录的关键字最大(或最小)这一特征,使得在当前无序区中选取最大(或最小)关键字的记录变得简单。一)用大根堆排序的基本思想① 先将初始文件R[1..n]建成一个大根堆,此堆为初始的无序区② 再将关键字最大的记录R[1](即堆顶)和无序区的最后一个记录R[n]交换,由此得到新的无序区R[1..n-1]和有序区R[n],且满足R[1..n-1].key...原创 2011-08-16 18:01:01 · 1262 阅读 · 0 评论 -
QuickSort详解与算法实现
算法过程 设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用第一个数据)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。值得注意的是,快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动。 一趟快速排序的算法是: 1)设置两个变量I、J,排序开始原创 2011-08-16 16:40:27 · 1269 阅读 · 0 评论 -
冒泡,选择,快排,归并,堆排序算法
一、各算法的时间复杂度①平均时间复杂度插入排序 O(n^2),冒泡排序 O(n^2),选择排序 O(n^2)快速排序 O(n log n),堆排序 O(n log n),归并排序 O(n log n),基数排序 O(n),希尔排序 O(n^1.25)②算法稳定性选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法;冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。##...原创 2011-08-14 14:58:53 · 4189 阅读 · 1 评论 -
单链表排序----快排 & 归并排序
Python(KK 英语发音:/'pa θɑn/, DJ 英语发音:/ paiθ n/)是一种面向对象、直译式计算机程序设计语言,创始人为Guido van Rossum。这种语言的语法简捷而清晰。Python具有丰富和强大的类库。python常被昵称为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松地联结在一起。常见的一种应用情形是,使用python快速生成程序的原型(转载 2011-09-03 13:26:29 · 1173 阅读 · 0 评论