快速排序 歸併排序

2022-04-09 19:58:03 字數 926 閱讀 2481

快排過程很簡單,就是乙個二分的思想,過程如下(從小到大為例):

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, int

high)

ps:**

快速排序 歸併排序

感覺好久之前不寫這些基礎的東西忽然覺著,想複習一下,就簡單溫習一下排序的例子 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...