資料結構《一》 排序演算法之選擇排序

2021-08-09 11:11:36 字數 854 閱讀 6723

選擇排序演算法描述:假設有一陣列,內有n個無序數字,進行從小到**擇排序,從第乙個數字開始遍歷陣列,挑選最小的數字與陣列第乙個數字進行交換,然後從第二個數字開始進行第二次遍歷,選次小的數字與第二個數字進行交換,以此類推,第n-1遍遍歷後,陣列排序完成。

選擇排序實現過程

時間複雜度為o(n²),**實現過程如下:

#include#define size 5

using namespace std;

typedef structtext;

void swap(text *b, int p, int q)

void selection_sort(text *a)

}swap(a,i,max_order);

}}void show(text *a)

selection_sort(text);

show(text);

return 0;

}

執行結果:

穩定性:如上圖所示,待排序數列中,有三個數字2,為標明其身份,定義結構體中新增乙個字元變數,輸入的3個數字2,其身份分別為q、e、t,經過排序之後,身份變更為t、e、q,由此可知,插入排序為不穩定排序。

資料結構《一》 排序演算法之氣泡排序

氣泡排序可以說是最簡單,大多數人最先接觸的排序演算法。臨近的數字兩兩進行比較,按照規定的順序進行交換,這樣一趟過去後,最大或最小的數字就像氣泡一樣被 排 最後一位,然後第二趟之後,次大或次小的數字被 排 到倒數第二位,以此類推,直至第一位與第二位順序正確。實現過程如圖 氣泡排序複雜度為o n 過程如...

資料結構系列 一 排序演算法

1.2 插入排序 1.3 選擇排序 1.4 歸併排序 1.5 堆排序 1.6 快速排序 基於資料狀況的排序演算法 1.7桶排序 1.8 小結 穩定排序 相對次序並沒有改變 void bubblesortv1 int a,int n 實現 增加乙個sorted標誌,對於有序陣列則不再進行比較判斷。複雜...

演算法(一)排序

一 o n 2 的排序演算法 1.選擇排序 selection sort 先找到最小的 public static void selectsort int arr 2.氣泡排序 bubble sort 先找到最大的 public static void bubblesort int arr 3.插入...