排序演算法 選擇排序

2021-06-26 01:24:42 字數 688 閱讀 3727

排序演算法作為最基本也是最常用的演算法,是我們必須要掌握的內容。

本文從比較基礎的選擇排序演算法開始,進行排序演算法的介紹。

思想

選擇排序,顧名思義,就是從一組總數為n的無序陣列中,進行一次遍歷,選擇出最小(最大)的乙個,把它交換到陣列的第0個位置。然後不斷重複該操作,直到最後兩個數。

在第 i 次選擇開始時,當前分為有序區 r1 [ 0 .. i -1] 和無序區r2 [ i ... n]。從位置 [ i ] 開始,到陣列末尾為止,選擇出最小(最大)的乙個,把它交換到陣列的第[ i ]個位置。

交換之後,有序區r1變為 [ 0 .. i ],無序區r2變為[i + 1 .. n]。即索引位置向後移一位。

**

#include #define size 10

using namespace std;

int main()

; for(int i=0; i

由於只剩下兩個數的時候,就已經比較出了大小,並依照排序方式進行了交換。所以當把倒數第二個數比較完之後,就已經得到了最終的結果,沒有必要把 i 加到陣列的最後一位。在**中體現的就是i < size -1。

由於總的比較次數 n = (n -1) + (n -2) + ... + 1 = n * (n -1) /2 , 所以時間複雜度是o( n ^ 2 )。

排序演算法 選擇排序

private static int leftchild int i private static void perc int a,int i,int n for int i 0 ir j break else public static void heasp int r,int n for i 0...

排序演算法 選擇排序

摘自 wiki百科 選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小元素,然後放到排序序列末尾 目前已被排序的序列 以此類推,直到所有元素均排序完畢。c語言實現 vo...

排序演算法 選擇排序

選擇排序是從乙個序列中選擇最小的元素,然後與第乙個元素進行位置交換,然後再第2個到最後乙個元素之間選出最小 即整個序列第二小的元素 的元素,然後再與整個序列的第二個元素進行位置交換,然後再從第3個到最後乙個元素之間選出最小 即整個序列第三小的元素 的元素,再與整個序列的第三個元素進行位置交換,重複上...