有序序列中的i个最大数(算法导论思考题9-1)
生活随笔
收集整理的這篇文章主要介紹了
有序序列中的i个最大数(算法导论思考题9-1)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
有序序列中的i個(gè)最大數(shù)
(算法導(dǎo)論思考題9-1)
a
時(shí)間復(fù)雜度O(nlgn+i)
b 時(shí)間復(fù)雜度O(n+ilgn)
//時(shí)間復(fù)雜度O(n+ilgn) vector<int> i_largest_number_in_ordered_sequence_b(int *array,int length,int i){vector<int>result;//時(shí)間復(fù)雜度O(n)build_heap(array,length);int heap_size = length;//時(shí)間復(fù)雜度O(ilgn)while (i-->0){//O(lgn)result.push_back(extra_max(array,heap_size));}return result; }c 時(shí)間復(fù)雜度O(n+ilgi)
//時(shí)間復(fù)雜度O(n+ilgi) vector<int> i_largest_number_in_ordered_sequence_c(int *array,int length,int i) {vector<int> result;//時(shí)間復(fù)雜度O(n)int key = select(array,0,length - 1,length - i + 1);//時(shí)間復(fù)雜度O(n)int position = partition(array,0,length - 1,key);//時(shí)間復(fù)雜度O(ilgi)quick_sort_by_median_contains_equal_elements(array,position,length - 1 );//時(shí)間復(fù)雜度O(i)for(int j = position;j < length;j++){result.push_back(array[j]);}return result; }綜上比較 c是最佳漸進(jìn)最壞情況運(yùn)行時(shí)間最優(yōu)的算法。
輔助函數(shù) extra_max
輔助函數(shù) max_heapify
鏈接地址
輔助函數(shù)
quick_sort_by_median_contains_equal_elements
地址鏈接
select和partition
鏈接地址
總結(jié)
以上是生活随笔為你收集整理的有序序列中的i个最大数(算法导论思考题9-1)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 脱水是什么意思
- 下一篇: 快速排序和选择模版类