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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

单峰数组找最大元素C语言,查找单峰数组中的第k个元素

發(fā)布時(shí)間:2025/3/15 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 单峰数组找最大元素C语言,查找单峰数组中的第k个元素 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

給定一個(gè)n個(gè)不同元素的單峰數(shù)組A(意味著它的條目按遞增順序排列直到其最大元素,之后其元素的遞減順序),則整數(shù)p (即增加的第一部分的長度)和k(第k個(gè)最小元素)給出算法以計(jì)算在O(log n)時(shí)間中運(yùn)行的第k個(gè)最小元素的值。查找單峰數(shù)組中的第k個(gè)元素

例子:

A= {1,23,50,30,20,2}

p= 2

k=3

答:20

編輯

我嘗試這樣做:

def ksmallest(arr1, arr2, k):

if len(arr1) == 0:

return arr2[len(arr2)-k-1]

elif len(arr2) == 0:

return arr1[k]

mida1 = (int)(len(arr1)/2)

mida2 = (int)((len(arr2)-1)/2)

if mida1+mida2

if arr1[mida1]>arr2[mida2]:

return ksmallest(arr1, arr2[:mida2], k-(len(arr2)-mida2))

else:

return ksmallest(arr1[mida1+1:], arr2, k-mida1-1)

else:

if arr1[mida1]>arr2[mida2]:

return ksmallest(arr1[:mida1], arr2, k)

else:

return ksmallest(arr1, arr2[mida2+1:], k)

2013-03-25

KienMe

+1

你試過了什么? –

2013-03-25 21:42:29

+2

不應(yīng)該是3? –

2013-03-25 21:42:29

+8

隨著第一部分的增加和其余的減少,你基本上有兩個(gè)排序的數(shù)組。查看[this](http://stackoverflow.com/a/12555973/1011995)或[this](http://stackoverflow.com/questions/4607945/how-to-find-the-kth-smallest-element在兩個(gè)排序的數(shù)組中)或其他很多問題。 –

2013-03-25 22:00:09

總結(jié)

以上是生活随笔為你收集整理的单峰数组找最大元素C语言,查找单峰数组中的第k个元素的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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