
sort
suhido
这个作者很懒,什么都没留下…
展开
-
排序算法学习(python版本)之插入排序(InsertionSort)
[b]插入排序[/b](Insertion Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。 [table] || |最差时间复杂...原创 2013-03-07 22:44:19 · 215 阅读 · 0 评论 -
排序算法学习(python版本)之选择排序(SelectionSort)
[b]选择排序[/b](Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 [table] |最差时间复杂度:O(n^2) | |最优时间复杂度:O(n^2)| |平均时间复杂度:O(n^2...原创 2013-03-07 22:49:34 · 338 阅读 · 0 评论 -
排序算法学习(python版本)之冒泡排序(BubbleSort)
[b]冒泡排序[/b](Bubble Sort,台灣譯為:泡沫排序或氣泡排序)是一種簡單的排序算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個算法的名字由來是因為越小的元素會經由交換慢慢「浮」到數列的頂端。冒泡排序演算法的運作如下: [list] [*] 1. 比較相鄰的...原创 2013-03-07 22:51:47 · 196 阅读 · 0 评论 -
排序算法学习(python版本)之堆排序(HeapSort)
[b]Contains:[/b] 堆排序以及堆排序的应用 [b]堆排序(Heapsort)[/b]是指利用堆積這種資料結構所設計的一種排序算法。堆積是一個近似完滿二元樹的結構,並同時滿足堆積的性質:即子結點的键值或索引總是小於(或者大於)它的父節點。 [list] [*]最差时间复杂度:O(nlogn) [*]最优时间复杂度:O(nlogn) [*]平均时间复杂度:O(nlogn) ...原创 2013-07-01 22:54:48 · 313 阅读 · 0 评论 -
排序算法学习(python版本)之快速排序(QuickSort)
[b]快速排序[/b]是由東尼·霍爾所發展的一種排序算法。在平均狀況下,排序 n 個項目要Ο(n log n)次比較。在最壞狀況下則需要Ο(n2)次比較,但這種狀況並不常見。事實上,快速排序通常明顯比其他Ο(n log n) 演算法更快,因為它的內部循环(inner loop)可以在大部分的架構上很有效率地被實作出來。 [table] |最差时间复杂度:O(n^2) | |最优时间复杂度...原创 2013-02-27 19:04:55 · 134 阅读 · 0 评论 -
排序算法学习(python版本)之归并排序(MergeSort)
[b]归并排序[/b](Merge sort)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 [table] |最差时间复杂度:O(nlogn) | |最优时间复杂度:O(n)| |平均时间复杂度:O(nlogn)| [/table] 归并操作归并操作(merge),也叫归并算法,指的是将两个已经排序的序...原创 2013-02-27 19:06:43 · 588 阅读 · 0 评论