模板 快速排序 歸併排序

2022-08-03 06:21:16 字數 1371 閱讀 5304

不得不說,手寫的快排真的好菜。(即使開了隨機數...)

快速排序

#include#include

#include

#include

using

namespace

std;

inline

intread();

const

int maxn = 100010

;namespace

inx

void quicksort(int left,int

right)

q[i]=key;

quicksort(left,i-1

); quicksort(i+1

,right);

}intmain()

}int

main()

inline

intread()

while(c>='

0'&&c<='

9') kk=kk*10+c-'

0',c=getchar();

return kk*ff;

}

歸併排序

#include#include

#include

using

namespace

std;

inline

intread();

const

int maxn = 100010

;namespace

inx

while(i<=mid) t[k++]=q[i++];

while(j<=right) t[k++]=q[j++];

for(i=left;i<=right;i++) q[i]=t[i];

}intmain()

}int

main()

inline

intread()

while(c>='

0'&&c<='

9') kk=kk*10+c-'

0',c=getchar();

return kk*ff;

}

可以到洛谷上測試:p1177 【模板】快速排序

附上兩種**測評結果(此題時間限制3s):

快速排序:

歸併排序:

(天天進步一點點hhh。)

排序 快速排序 歸併排序模板 模板

正經人誰手寫這玩意?785.快速排序 本質 分治。是不穩定的排序演算法。時間複雜度 o n logn o nlogn o nlog n 空間複雜度 o l ogn o logn o logn 基於遞迴,用到棧空間 模板注意點 關於無限遞迴問題,大家動手模擬一遍樣例就能理解了。快排邊界問題很多,很煩 ...

快速排序與歸併排序 模板

理解 取中間值為分界點x,使得左邊的數 x,右邊的數 x,然後再遞迴處理左右兩段 模板 void quick int a,int l,int r quick a,l,j quick a,j 1,r 分治思想 不停的細分,在合起來,用兩個指標i,j分別指向兩個有序陣列,不停的從中取出當前剩餘元素中最小...

歸併排序以及快速排序模板

void merge vector arr,int l,int mid,int r while p1 mid while p2 r for int i 0 i size i 歸併排序 一定要注意 號的優先順序大於 class solution void merge vector arr,int l,...