選擇排序演算法描述:假設有一陣列,內有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.插入...