插入排序(insertion sorting):將乙個資料插入到有序資料中,構成長度加一的新有序資料,適用於少量資料的排序,時間複雜度o(n^2),是穩定的排序方法。
選擇排序(selection sorting):每次從待排序的資料元素中選出最小(或最大)的乙個元素,存放在序列的起始位置,知道全部待排序的資料元素排完,是不穩定的排序方法。
堆排序(heap sort):選擇排序的改進。將無序數列構建成乙個堆,根據公升序、降序需求選擇大頂堆或小頂堆;將堆頂元素與末尾元素交換,將最大元素「沉」到陣列末端;重新調整結構;重新調整結構,使其滿足堆定義,然後繼續交換堆頂元素與當前末尾元素,反覆執行調整+交換步驟,直到整個序列有序。
氣泡排序(bubble sorting):對相鄰元素兩兩比較,順序相反則進行交換,每走一趟會將最小或最大的元素「浮」到頂端,最終達到完全有序。
}快速排序(quick sort):對氣泡排序的改進。通過一趟排序將待排資料分割成比選定資料小和大的兩部分,再依照此法對兩部分資料進行快速排序。
歸併排序(merge sort):採用了分治策略,將已有序的子串行合併,得到完全有序的序列。若將兩個有序表合併成乙個有序表,稱為二路歸併。
常見排序演算法
一.選擇排序 1.概念 每次從無序的子陣列裡面選擇最小的數,放在有序區的後面 既與無序區的首元素交換 不穩定排序 時間複雜度o n 2 輔助儲存o 1 2.實現 int selection sort int a,int len len為陣列元素個數 二.氣泡排序 1.概念 重複訪問數列n 1次,每次...
常見排序演算法
1 插入排序 直接插入排序,是一種最簡單的排序方法,它的基本操作是將乙個記錄插入到已排好序的有序表中,從而得到乙個新的 記錄數增1的有序表。初始 38 65 27 76 13 i 1 13 選13為監視哨並假設為乙個有序序列 i 2 13 38 待插入元素38 13 i 3 13 38 65 待插入...
常見排序演算法
排序演算法作為常用的基本演算法,今天就來總結一下各種經典排序演算法,這裡只貼出 對演算法的文字描述可以在課本或其它部落格上找到很多詳盡的敘述,這裡直接上 而不是常見演算法書上的偽 希望對正在努力學資料結構與演算法的朋友們有幫助 1 氣泡排序 void bubblesort t a,int n if ...