关闭

八大排序——快速排序

作为一个学后台的同学,如果你不会希尔排序,我可以认为你学的不够,但如果你不会快速排序,那么我就要偷偷笑你了。快速排序算法最早由图灵奖的获得者Tony Hoare设计出来,更牛逼的是,这个算法被列为了20世纪十大算法之一。对,没错,是十大算法,不是十大排序算法,这足以看出这个排序算法在学界中大牛心目中的地位,我们这些程序猿还有什么理由不去学习它?不说玩笑话,下面让我们真正的体会一下快速排序。快速排序算...
阅读(145) 评论(0)

八大排序——直接插入排序

直接插入排序(Straight Insertion Sort)的基本操作是将一个元素插入到序列已经有序的那一部分中去,从而使序列中有序的部分逐渐扩大,直到整个序列有序。博主认为直接插入排序过程比较容易理解,所以不作过多赘述,直接上代码#includevoid main() { int a[6]={5,6,8,4,6,9}; int length=sizeof(a)/...
阅读(159) 评论(0)

八大排序——希尔排序

希尔排序(Shell Sort),是插入排序的一种。是直接插入排序的改进版,它是非稳定排序算法。其得名于它的提出者D.L.Shell,Shell Sort等算法的提出打破了“排序算法不可能突破O(n^2)”的魔咒,它将排序算法的时间复杂度提成到了O(nlongn),不可能超越的O(n^2)彻底成为了历史。 既然希尔排序是直接插入排序的改进版,那么它肯定是在直接插入排序的优势上做文章。了解直接插入排...
阅读(236) 评论(0)

八大排序算法——冒泡排序

冒泡排序冒泡排序,顾名思义,它是将关键字按照你想要的序列一个一个“冒”出来,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。 假设我们待排序的数组是a[6]={8,9,1,3,5,7},所要求的序列是升序,那么如下图,算法的第一次冒泡是先将最大关键字9“冒”到末置位。其过程:先将8和9比较,81交换;然后将9和3比较,9>3交换,以...
阅读(173) 评论(0)

八大排序算法——堆排序

八大排序排序,分为内部排序和外部排序,内部排序是指将数据记录在内存中进行排序,而外部排序因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存,所以称之为外部排序,我们这里讲的八大排序全部属于内部排序。八大排序时间/空间复杂度及稳定性堆排序堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。堆分...
阅读(235) 评论(0)
    个人资料
    • 访问:11927次
    • 积分:396
    • 等级:
    • 排名:千里之外
    • 原创:25篇
    • 转载:1篇
    • 译文:0篇
    • 评论:7条
    最新评论