学习笔记--算法
文章平均质量分 71
LingXin94
这个作者很懒,什么都没留下…
展开
-
排序六 快速排序
快速排序(Quick Sort) 快速排序(Quicksort)是对冒泡排序的一种改进,由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。—百度百科时间复杂度:最好 O(n)=O(nl原创 2017-12-13 15:09:46 · 313 阅读 · 0 评论 -
排序十 计数排序
计数排序(Counting Sort)原创 2017-12-28 23:16:39 · 229 阅读 · 0 评论 -
排序九 基数排序
基数排序 基数排序类似于桶排序,是一种借助多关键字排序的思想对单逻辑关键字进行排序的方法。 最高位优先(Most Significant Digit first)法,简称MSD法:依次元素的高位到低位为关键字进行分桶排序。 最低位优先(Least Significant Digit first)法,简称LSD法:依次元素的低位到高位为关键字进行分桶排序。 基数排序是一种稳定的排序方式原创 2017-12-28 22:15:17 · 268 阅读 · 0 评论 -
排序八 桶排序
桶排序(Bucket Sort) 桶排序 (Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序)。桶排序是鸽巢排序的一种归纳结果。当要被排序的数组内的数值是均匀分配的时候,桶排序使用线性时间(Θ(n))。但桶排序并不是比较排序,他不受到 O(n log n) 下限的影响。原创 2017-12-28 14:59:43 · 326 阅读 · 0 评论 -
排序七 堆排序
堆排序(Heap Sort) 堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。—百度百科 时间复杂度:最好 O(n)=O(n);平均O(n)=O(nlogn);最差O(n)=O(nlogn) 空间复杂度:O(n)=O(1) 稳定性: 不稳定 堆(Heap) 堆是顺序储存的完全二原创 2017-12-13 16:49:34 · 205 阅读 · 0 评论 -
排序三 直接插入排序
直接插入排序(Straight Insertion Sort) 直接插入排序:每步将一个待排序的记录,按其关键字的大小插到前面已经排序的序列中的适当位置,直到全部记录插入完毕为止。—百度百科 时间复杂度:最好 O(n)=O(n);平均O(n)=O(n²);最差O(n)=O(n²) 空间复杂度:O(n)=O(1) 稳定性:稳定 算法原理 设数组为a[n],i = 1。 1.原创 2017-12-12 10:26:18 · 497 阅读 · 0 评论 -
排序五 归并排序
归并排序(Merge Sort) 归并排序(Merge-Sort)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。—百度百科时间复杂度:最好 O(n)=O(nlogn);平均O(n)=O(nlogn);最差O(n)=O(nlogn) 空间复原创 2017-12-13 10:34:04 · 324 阅读 · 0 评论 -
排序四 希尔排序
希尔排序(Shell Sort) 希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。 —百度原创 2017-12-12 11:51:52 · 242 阅读 · 0 评论 -
排序二 选择排序
选择排序(Selecting Sort) 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 —百度百科 时间复杂度:最好 O(n)=O(n²);平均O(n)=O(n²);最差O(n)=O(n²) 空间复杂度:O(n)=O(1) 稳定性:不稳定 优势:交原创 2017-12-12 09:42:34 · 228 阅读 · 0 评论 -
排序一 冒泡排序
冒泡排序(Bubble Sort) 重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。 —百度百科 时间复杂度:最好 O(n)=O(n);平均O(n)=O(n²);最差O(n)=O(n²) 空间复杂度:原创 2017-12-11 16:45:33 · 462 阅读 · 0 评论 -
排序十一 鸽巢排序
鸽巢排序(Pigeonhole Sort)原创 2017-12-28 23:19:30 · 438 阅读 · 0 评论