快排過程很簡單,就是乙個二分的思想,過程如下(從小到大為例):
1、取乙個關鍵字;
2、把序列中大於關鍵字的放在關鍵字右邊;
3、把序列中小於關鍵字的放在關鍵字左邊;
4、重複1-3步,直到序列有序;
**+注釋:
#include#define n 100歸併排序(好東西來了):int quicksort1 (int r, int low, int
high)
r[low]=key; /*
軸值(支點)記錄到位
*/return low; /*
返回軸值(支點)記錄所在位置*/}
void quicksort(int r,int low,int
high)
}int
main()
quicksort(a,
0,n-1
);
for(int i = 0; i < n; i++)
putchar('\n
');return0;
}
歸併操作的過程如下:
申請空間,使其大小為兩個已經排序序列之和,該空間用來存放合併後的序列
設定兩個指標,最初位置分別為兩個已經排序序列的起始位置
比較兩個指標所指向的元素,選擇相對小的元素放入到合併空間,並移動指標到下一位置
重複步驟3直到某一指標達到序列尾
將另一串行剩下的所有元素直接複製到合併序列
如圖:
實現**:
void merge(int array, int low, int mid, intps:**high)
快速排序 歸併排序
感覺好久之前不寫這些基礎的東西忽然覺著,想複習一下,就簡單溫習一下排序的例子 package com.ruishenh.algoritmic public class sort static void printmsg int arrs system.out.println static int g...
快速排序,歸併排序
快速排序 quicksort 是對 氣泡排序的一種改進。設要排序的 陣列是a 0 a n 1 首先任意選取乙個資料 通常選用陣列的第乙個數 作為關鍵資料,然後將所有比它小的數都放到它前面,所有比它大的數都放到它後面,這個過程稱為一趟快速排序。需要注意的是,多個相同的值的相對位置也許會在演算法結束時產...
歸併排序,快速排序
快速排序實現 filename fastsort description author hcq createtime 2019 04 12 10 01 public class fastsort arrays.stream arr foreach v system.out.println 排序後 s...