不得不說,手寫的快排真的好菜。(即使開了隨機數...)
快速排序
#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可以到洛谷上測試:p1177 【模板】快速排序#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;
}
附上兩種**測評結果(此題時間限制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,...