資料結構 lucky ming幸運的小明

2022-07-08 09:39:10 字數 1032 閱讀 6210

問題描述

在快速排序過程中, 每次會找乙個劃分值, 將小於劃分值的放到其左邊, 大於劃分值的

放右邊, 然後再依次遞迴左右兩邊, 對子序列進行同樣的操作, 直到子串行為空則停止操作。

最後就得到了有序的序列。

如何找到乙個合適的劃分值? 小茗同學也不知道, 所以他用了隨機演算法。 小茗同學的運

氣很好, 每次都剛好隨機到中位數, 但是他也不知道這個過程中使用到的劃分值都是多少。

所以你需要幫助小茗同學找出整個排序過程中, 用到的所有劃分值, 並按照其用到的順序輸

出。假定(1) 快速排序優先遞迴排序左邊序列, 然後才是右邊序列;

(2) 中位數定義為序列中的第⌈ n/2⌉ 大的數(n 表示序列長度, ⌈ ⌉ 表示向上取整) 。

如 3 4 1 的中位數是 3, 3 4 1 2 的中位數是 2;

★資料輸入

輸入的第一行為數字 n (1≤n≤10^5), 表示給定序列的長度。

第二行包含 n 個整數, 表示序列中的整數 a1,a2,...,an。 (1≤ai≤10^9)。 序列中的數互

不相同。

★資料輸出

在一行中依次輸出劃分值。

輸入示例

輸出示例

531 5 2 4

3 1 2 4 5

思路快排 二分

code

1 #include 2 #include 3

4void merge(int *p,int l,intr)5

13}1415

int cmp(const

void *a, const

void *b)

1619

20int

main()

2130 qsort(p,n,sizeof(int

),cmp);

31//

for(i=0;i32 merge(p,0,n-1

);33

34free

(p);

35return0;

36 }

資料結構 XingYunX 幸運兒

資料結構 xingyunx 幸運兒 問題描述 資料輸入 輸入第一行為乙個正整數 n。對於 50 的資料,1 n 1000 對於 80 的資料,1 n 6000 對於 100 的資料,1 n 1000000000 資料輸出 輸出 x。輸入示例 輸出示例5 5 輸入示例 輸出示例6 3 解題思路 思路1...

資料結構 資料結構緒論

資料結構是相互間存在一種或多種特定關係的資料元素的集合。程式設計 資料結構 演算法 資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及他們之間的關係和操作等相關問題的學科。資料元素是組成資料的 有一定意義的基本單位,是計算機中通常作為整體處理,也被稱為記錄。乙個資料元素可以由若干個資料項組...

資料結構 資料結構演算法

分治法 對於乙個規模為n的問題,若該問題可以容易地解決 比如說規模n較小 則直接解決 否則將其分解為k個規模較小的子問題,這些子問題互相獨立且與原問題形式相同,遞迴地解這些子問題,然後將各子問題的解合併得到原問題的解。動態規劃法 這種演算法也用到了分治思想,它的做法是將問題例項分解為更小的 相似的子...