排序演算法 二

2021-06-18 23:18:27 字數 468 閱讀 1329

不穩定的排序演算法

簡單選擇排序

每一趟從待排序的資料元素中選出最小(或最大)的乙個元素,順序放在已排好序的數列最前,直到全部待排序的資料元素排完。

void selectsort(int *data , int size = size)

} if(i!=k)

swap(data[i],data[k]);

}}

快排(非隨機)

快速排序是對起泡排序的一種改進。基本思想是,通過一趟排序將待排序記錄分割成三部分,其中支點為k,一段中任何元素都小於k,一段中任何元素都大於k,遞迴求解對這兩段執行快速排序。

void quicksort(int arr,int p,int r)

arr[p] = arr[j];

arr[j] = m;

return j;

}

演算法 排序演算法(二)

選擇排序,選擇所有元素中最小的乙個放在第一位,然後從剩下的元素中選擇最小的放第二位,依此類推,完成選擇排序。include define m 10001 using namespace std int a m void selectsort int n int t a i a i a min a m...

排序演算法(二)

快速排序 快速排序 elementtype median3 elementtype a,int left,int right void qsort elementtype a,int left,int right swap a low a right 1 將基準換到正確的位置 qsort a,lef...

排序演算法(二)

基本思想 將乙個記錄插入到已經排序好的有序表中,從而得到乙個新 記錄數增1的有序表。即 先將序列的第乙個記錄看成是乙個有序的子串行,然後從第二個記錄逐個進行插入,直至整個序列有序為止。要點 設立哨兵,作為臨時儲存和判斷陣列邊界之用。直接插入排序示例 如果碰見乙個和插入元素相等的,那麼插入元素把想插入...