日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

有序序列中的i个最大数(算法导论思考题9-1)

發(fā)布時(shí)間:2023/12/4 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 有序序列中的i个最大数(算法导论思考题9-1) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

有序序列中的i個(gè)最大數(shù)

(算法導(dǎo)論思考題9-1)
a
時(shí)間復(fù)雜度O(nlgn+i)

//總共時(shí)間復(fù)雜度O(nlgn+i) vector<int> i_largest_number_in_ordered_sequence_a(int *array,int length,int i){vector<int>result;//時(shí)間復(fù)雜度O(nlgn)quick_sort_by_median_contains_equal_elements(array,0,length-1);//時(shí)間復(fù)雜度iwhile (i>0){result.push_back(array[length-i]);i--;}return result; }

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

int extra_max(int *array,int& heap_size) {int max = array[0];array[0] = array[heap_size-1];heap_size -- ;max_heapify(array,heap_size,0);return max; }

輔助函數(shù) max_heapify
鏈接地址
輔助函數(shù)
quick_sort_by_median_contains_equal_elements
地址鏈接
select和partition
鏈接地址

總結(jié)

以上是生活随笔為你收集整理的有序序列中的i个最大数(算法导论思考题9-1)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。