排序演算法 選擇排序

2021-09-08 16:01:07 字數 785 閱讀 4867

今天繼續介紹排序演算法系列的第二講,選擇排序。選擇排序也是一種常見的排序方法,非常簡單。廢話不說,來看看吧。

思想

還是先來看看選擇排序的思想。選擇排序的思想非常直接,不是要排序麼?那好,我就從所有序列中先找到最小的,然後放到第乙個位置。之後再看剩餘元素中最小的,放到第二個位置……以此類推,就可以完成整個的排序工作了。可以很清楚的發現,選擇排序是固定位置,找元素。相比於插入排序的固定元素找位置,是兩種思維方式。不過條條大路通羅馬,兩者的目的是一樣的。

**

for(int i=0; iint min = v[i]; 

int temp;

int index = i;

for(int j=i+1;jif(v[j] < min)

}

temp = v[i];

v[i] = min;

v[index]= temp;

}

分析

從選擇排序的思想或者是上面的**中,我們都不難看出,尋找最小的元素需要乙個迴圈的過程,而排序又是需要乙個迴圈的過程。因此顯而易見,這個演算法的時間複雜度也是o(n*n)的。這就意味值在n比較小的情況下,演算法可以保證一定的速度,當n足夠大時,演算法的效率會降低。並且隨著n的增大,演算法的時間增長很快。因此使用時需要特別注意。

今天又介紹了一種簡單的排序方法,下次可能要講一講另外一種簡單方法——氣泡排序。

排序演算法 選擇排序

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...

排序演算法 選擇排序

排序演算法作為最基本也是最常用的演算法,是我們必須要掌握的內容。本文從比較基礎的選擇排序演算法開始,進行排序演算法的介紹。思想 選擇排序,顧名思義,就是從一組總數為n的無序陣列中,進行一次遍歷,選擇出最小 最大 的乙個,把它交換到陣列的第0個位置。然後不斷重複該操作,直到最後兩個數。在第 i 次選擇...