模板題 快排 歸併 二分

2021-10-16 02:26:01 字數 3241 閱讀 9938

#include

using

namespace std;

const

int n =

1000010

;int q[n]

;void

quick_sort

(int q,

int l,

int r)

quick_sort

(q, l, j)

;quick_sort

(q, j +

1, r);}

intmain()

#include

using

namespace std;

typedef

long

long ll;

const

int n=

1e6+9;

int n;

int a[n]

,tmp[n]

;void

mergesort

(int q,

int l,

int r)

intmain()

#include

using

namespace std;

typedef

long

long ll;

const

int n=

1e6+9;

int n;

int a[n]

,tmp[n]

;ll mergesort

(int q,

int l,

int r)

while

(i<=mid) tmp[k++

]=q[i++];

while

(j<=r) tmp[k++

]=q[j++];

for(

int i=l,j=

0;i<=r;i++

,j++

) q[i]

=tmp[j]

;return res;

}int

main()

用來查詢某個整數是否在序列中存在,時間複雜度o(n

2n^2

n2logn)

#include

using

namespace std;

const

int n=

1000010

;int n,t,k;

int q[n]

;int

main()

if(q[l]

!=k)

printf

("-1 -1\n");

//q[l]=q[r]

else

cout

}

分巧克力

#include

using

namespace std;

typedef

long

long ll;

const

int n=

100010

;int n,k;

int h[n]

,w[n]

;int

check

(int mid)

intmain()

printf

("%d\n"

,r);

return0;

}

機械人跳躍問題

#include

#include

#include

#include

using

namespace std;

const

int n=

100010

;int n,h[n]

;bool

check

(int e)

return

true;}

intmain()

printf

("%d\n"

,r);

return0;

}

1221.四平方和

純暴力列舉三次的o(n

3n^3

n3)**會被卡掉,雜湊演算法在本題中是最壞情況,演算法本身o(n

2n^2

n2),因此也會超時

#include

#include

#include

#include

using

namespace std;

const

int n =

2500010

;struct sum

}sum[n]

;int n, m;

intmain()

;sort

(sum, sum + m)

;for

(int a =

0; a * a <= n; a ++

)for

(int b =

0; a * a + b * b <= n; b ++)if

(sum[l]

.s == t)

}return0;

}

#include

using

namespace std;

intmain()

printf

("%lf\n"

,l);

return0;

}

割繩子:繩子的根數一定定義成整數!

#include

using

namespace std;

const

int n=

100010

;double a[n]

;int n,m;

bool

check

(double mid)

intmain()

printf

("%.2f\n"

,r);

return0;

}

二分查詢,ruby快排,歸併,ruby實現

都是採用遞迴方法,針對有序陣列。以下 前者針對含有重複的有序陣列,如 1,1,1,1,2,2,3,3,3,4,5,5,5,6 查詢最後乙個值等於要查詢的值。後者是普通的二分查詢 二分查詢 查詢最後乙個值等於給定值的元素 返回結果是陣列的下標,不能直接返回值,因為重複值無法體現是否真正返回最後乙個。d...

scala實現快排,歸併,冒泡,二分查詢

快速排序使用分治的思想,選定乙個基準點,通過一趟排序將待排序的序列分為左右兩個部分,其中左邊的部分都比基準點要小,右邊的基準點都比基準點要大,之後在分別對左右兩邊的部分,按照相同的思想繼續切分,最終達到乙個有序佇列的目的 時間複雜度 o nlog n 空間複雜度 o log n def quicks...

快排和二分查詢

我只是課本的搬運工,做做筆記,當練打字也可以。這裡我把qsort放前面講是因為bsearch在使用之前需要對陣列進行排序,排完後才能進行查詢。老師說學了快排之後就不要用氣泡排序法和選擇排序法了,然而我選擇排序還不太會,找個時間整理整理吧。快速排序 qsort函式 標頭檔案 或 功能 對具有num個元...