目录
冒泡排序
冒泡排序(Bubble Sort--是一種簡單的排序算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個算法的名字由來是因為越小的元素會經由交換慢慢「浮」到數列的頂端。 冒泡排序對n個項目需要O(n^2)的比較次數,且可以原地排序。儘管這個演算法是最簡單瞭解和實作的排序算法之一,但它對於包含大量的元素的數列排序是很沒有效率的。 冒泡排序是與插入排序擁有相等的執行時間,但是兩種算法在需要的交換次數卻很大地不同。在最壞的情況,冒泡排序需要O(n^2)次交換,而插入排序只要最多O(n)交換。冒泡排序的實現(類似下面)通常會對已經排序好的數列拙劣地執行(O(n^2)),而插入排序在這個例子只需要O(n)個運算。因此很多現代的演算法教科書避免使用冒泡排序,而用插入排序取代之。冒泡排序如果能在內部迴圈第一次執行時,使用一個旗標來表示有無需要交換的可能,也可以把最優情況下的複雜度降低到O(n)。在這個情況,已經排序好的數列就無交換的需要。若在每次走訪數列時,把走訪順序反過來,也可以稍微地改進效率。有時候稱為雞尾酒排序,因為演算法會從數列的一端到另一端之間穿梭往返。 冒泡排序演算法的運作如下:.
查看 鸡尾酒排序和冒泡排序
选择排序
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对 n 个元素的表进行排序总共进行至多 n-1 次交换。在所有的完全依靠交换去移动元素的排序方法中,选择排序属于非常好的一种。.
查看 鸡尾酒排序和选择排序
排序算法
在計算機科學與數學中,一個排序算法(Sorting algorithm)是一種能將一串資料依照特定排序方式进行排列的一種算法。最常用到的排序方式是數值順序以及字典順序。有效的排序算法在一些算法(例如搜尋算法與合併算法)中是重要的,如此這些算法才能得到正確解答。排序算法也用在處理文字資料以及產生人類可讀的輸出結果。基本上,排序算法的輸出必須遵守下列兩個原則:.
查看 鸡尾酒排序和排序算法
数组
在計算機科學中,陣列資料結構(array data structure),簡稱数组(Array),是由相同类型的元素(element)的集合所組成的資料結構,分配一块连续的内存来存储。利用元素的索引(index)可以计算出该元素對應的儲存地址。 最簡單的資料結構類型是一維陣列。例如,索引為0到9的32位元整數陣列,可作為在記憶體位址2000,2004,2008,...2036中,儲存10個變量,因此索引為i的元素即在記憶體中的2000+4×i位址。陣列第一個元素的記憶體位址稱為第一位址或基礎位址。 二维数组,对应于數學上的矩陣概念,可表示為二維矩形格。例如: a.
查看 鸡尾酒排序和数组
亦称为 往返排序。