八大排序
文章平均质量分 80
Jeaforea
PHP从零基础到神经病
展开
-
八大排序——快速排序
作为一个学后台的同学,如果你不会希尔排序,我可以认为你学的不够,但如果你不会快速排序,那么我就要偷偷笑你了。快速排序算法最早由图灵奖的获得者Tony Hoare设计出来,更牛逼的是,这个算法被列为了20世纪十大算法之一。对,没错,是十大算法,不是十大排序算法,这足以看出这个排序算法在学界中大牛心目中的地位,我们这些程序猿还有什么理由不去学习它?不说玩笑话,下面让我们真正的体会一下快速排序。快速排序算原创 2017-03-20 22:27:44 · 637 阅读 · 0 评论 -
八大排序算法——冒泡排序
冒泡排序冒泡排序,顾名思义,它是将关键字按照你想要的序列一个一个“冒”出来,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。 假设我们待排序的数组是a[6]={8,9,1,3,5,7},所要求的序列是升序,那么如下图,算法的第一次冒泡是先将最大关键字9“冒”到末置位。其过程:先将8和9比较,8<9不交换;再将9和1比较,9>1交换;然后将9和3比较,9>3交换,以原创 2017-03-14 14:33:06 · 688 阅读 · 0 评论 -
八大排序——直接插入排序
直接插入排序(Straight Insertion Sort)的基本操作是将一个元素插入到序列已经有序的那一部分中去,从而使序列中有序的部分逐渐扩大,直到整个序列有序。博主认为直接插入排序过程比较容易理解,所以不作过多赘述,直接上代码#include<stdio.h>void main(){ int a[6]={5,6,8,4,6,9}; int length=sizeof(a)/原创 2017-03-19 22:33:03 · 661 阅读 · 0 评论 -
八大排序算法——堆排序
八大排序排序,分为内部排序和外部排序,内部排序是指将数据记录在内存中进行排序,而外部排序因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存,所以称之为外部排序,我们这里讲的八大排序全部属于内部排序。八大排序时间/空间复杂度及稳定性堆排序堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。堆分原创 2017-03-13 15:28:27 · 1214 阅读 · 0 评论 -
八大排序——希尔排序
希尔排序(Shell Sort),是插入排序的一种。是直接插入排序的改进版,它是非稳定排序算法。其得名于它的提出者D.L.Shell,Shell Sort等算法的提出打破了“排序算法不可能突破O(n^2)”的魔咒,它将排序算法的时间复杂度提成到了O(nlongn),不可能超越的O(n^2)彻底成为了历史。 既然希尔排序是直接插入排序的改进版,那么它肯定是在直接插入排序的优势上做文章。了解直接插入排原创 2017-03-16 22:29:18 · 765 阅读 · 0 评论