演算法基本思想和步驟——分治思想
1.確定邊界點和分界點
2.調整區間
3.遞迴處理左右兩段
題目關鍵點:邊界的確定、區間的調整、調整後再遞迴
題目
給定你乙個長度為n的整數數列。
請你使用快速排序對這個數列按照從小到大進行排序。
並將排好序的數列按順序輸出。
輸入格式
輸入共兩行,第一行包含整數 n。
第二行包含 n 個整數(所有整數均在1~109範圍內),表示整個數列。
輸出格式
輸出共一行,包含 n 個整數,表示排好序的數列。
資料範圍
1≤n≤100000
輸入樣例:
53 1 2 4 5
輸出樣例:
1 2 3 4 5
**
#include
using
namespace std;
const
int n =
1e6+10;
int n;
int q[n]
;void
quick_sort
(int q,
int l,
int r)
quick_sort
(q, l, j)
;quick_sort
(q, j +
1, r)
;//遞迴處理調整後區間裡的數
}int
main()
題目
給定乙個長度為n的整數數列,以及乙個整數k,請用快速選擇演算法求出數列的第k小的數是多少。
輸入格式
第一行包含兩個整數 n 和 k。
第二行包含 n 個整數(所有整數均在1~109範圍內),表示整數數列。
輸出格式
輸出乙個整數,表示數列的第k小數。
資料範圍
1≤n≤100000,
1≤k≤n
輸入樣例:
5 32 4 1 5 3
輸出樣例:
3**
#include
using
namespace std;
const
int n =
100010
;int n;
int q[n]
;void
quick_sort
(int q,
int l,
int r)
quick_sort
(q, l, j)
;quick_sort
(q, j +
1, r);}
intmain()
(模板**於acwing使用者yxc) 基礎演算法 快速排序(C )
參考自 演算法筆記 include include include using namespace std 預設以a left 為主元的快排 int partition 1 int a,int left,int right int temp a left while lefttemp right a...
快速排序演算法 c 實現
namespace backpackproblem backpack bp new backpack profit int start 0 int end profit.length 1 bp.quicksort profit,start,end bp.print class backpack 快速...
快速排序演算法C 實現
經常看到有人在網上發快速排序的演算法,通常情況下這些人是在準備找工作,或者看 演算法導論 這本書,而在他們發布的 通常是差不多的版本,估計也是網上 copy 一下,自己改改,跑過了就算了,但是通常這樣玩根本沒有太大作用,如果到一家公司,給你一台不能上網的筆記本,20分鐘,你是根本寫不出來快速排序的演...