演算法分析第六次作業

2022-09-13 06:18:09 字數 889 閱讀 1498

給你乙個序列讓你找出第k大

寫出乙個快排,選定key,當左區間比他小的數大於k則遞迴左區間,小於k,則當前k減去小於的值,遞迴右區間,等於k則這個數就是我們要找的數

int findkthmax(int*list, int left, int right, int k) 

list[low] = key;

/*實現一次快速排序*/

int l = right - low + 1;

if (l == k) //若key處恰好為第k大數,直接返回

return key;

else if (l < k)

/*lk說明第k大的數在右邊序列中,位置還是第k大的數*/

findkthmax(list, low + 1, right, k);

}

最壞複雜度o(nlogn)

#includeusing namespace std;

int findkthmax(int*list, int left, int right, int k);

int main()

return 0;

}int findkthmax(int*list, int left, int right, int k)

list[low] = key;

/*實現一次快速排序*/

int l = right - low + 1;

if (l == k) //若key處恰好為第k大數,直接返回

return key;

else if (l < k)

/*lk說明第k大的數在右邊序列中,位置還是第k大的數*/

findkthmax(list, low + 1, right, k);

}

第六次作業

姓名 陳裕坤 學號 120705213 班級 12電信2班 作業1 總結,到目前為止,c語言基礎知識已介紹完,下一階段重點是指標。請從以下幾個方面小結 1.程式設計重在實踐,多程式設計才會對其理解更深,我是如何學習c語言的?2.程式設計涉及到方方面面知識,就像英語單詞一樣,一開始不可能了解每個c元素...

第六次作業

一 問題及 檔名稱 2.cpp 作 者 劉澤 完成日期 2017年5月18日 版 本 號 v1.0 對任務的求解方法及描述部分 輸入描述 問題描述 定義乙個不重複的有初值的10個元素的整數陣列a,利用冒泡法對陣列a排序 1 刪除x 2 插入x 程式輸出 問題分析 用迴圈結構進行編寫 演算法設計 in...

第六次作業

檔名稱 jll.cpp 作 者 謝陽泉 完成日期 2017 年 5 月 19 日 版 本 號 v1.0 對任務及求解方法的描述部分 專案一 陣列操作 輸入描述 略 問題描述 定義乙個不重複的有初值的10個元素的整數陣列a,利用冒泡法對陣列a排序後完成以下操作。程式輸出 3 4 5 6 7 8 9 1...