20180321選擇排序-簡單選擇排序

前置知識

  • selection sort
  • 選擇排序的基本思想:從待排序的序列中選出最大值(最小值),交換該元素與待排序序列頭部元素,直到全部待排序的數據元素排序完畢爲止。
  • 能夠複習下直接插入排序

本期內容

名詞解釋

  • 簡單選擇排序將待排序序列視爲兩部分
    • 一部分是:有序序列,爲空。
    • 另外一部分是:待排序數列,整個序列。
  • 核心操做在於最值的選擇。

實現

  • 時間複雜度O(n*n),雙層for循環
  • 不穩定的算法
void SelectSort(int arr[],int n)
{
    int i, j,max;
    for(i=1;i<n;i++)
    {
        max = i;// 定義當前下標爲最小值下標
        for(j=1;j<n;j++) //查找最大值,並記錄其下標
        {
            if(arr[max] < arr[j])
                max = j;
        } 
        // 若i不等於max,說明找到最大值,進行交換
        if(i!=max)
        {
            swap(&arr[i],&arr[max]);
        }
    }
}

整體評價

  • 比較好理解的算法

代碼學習

履歷

  • 20180321整理,算法比較簡單,主要在
    • 穩定不穩定方面,沒太理解。
相關文章
相關標籤/搜索