查詢最小的k個元素的自寫演算法

2021-06-03 15:33:00 字數 698 閱讀 2284

題目:

輸入n個整數,輸出其中最小的k個。

例如輸入1,2,3,4,5,6,7和8這8個數字,則最小的4個數字為1,2,3和4

解題:1, 通過排序陣列,然後取前k個資料 時間複雜度為o(n^2)

2, 通過迴圈k次,找出最小的k個資料,時間複雜度為:o(n*k)

3, 如果提前知道要輸出的k個資料,則建立k個變數,依次取出,時間複雜度為o(n)

1. 

void minsequence(int *p, int len)}}

}2.void sequence(int *p, int len, int num)

}if (!bbreak)}}

3. void findminnum(int *p, int len)

else if ((min2 > p[i]) || (min2 == 0))

else if ((min3 > p[i]) || (min3 == 0))

else if ((min4 > p[i]) || (min4 == 0))

min4 = p[i];

}std::cout << "the number is:" << min1 << " "

<< min2 << " " << min3 << " "

<< min4 << std::endl;}

4:如果讀者有更好的演算法,請寫出,一起交流!

查詢最小的k個元素

題目 輸入n個整數,輸出其中最小的k個。演算法思想,要是將n個數排序然後輸出前k個,方法很簡單,但計算量比較大,為o nlogn 要是新建乙個有k個元素陣列,在陣列不滿時,將每乙個輸入的資料存入陣列。若陣列滿了,則比較輸入的資料與陣列中最大元素的大小,來決定接下來幹什麼,接下來幹什麼,我語言表達能力...

查詢最小的k個元素

查詢最小的k個元素 題目 輸入n個整數,輸出其中最小的k個。例如輸入1,2,3,4,5,6,7和8這8個數字,則最小的4個數字為1,2,3和4。1 輸入元素,並排序 2 輸出前k個元素 排序 採用高效的排序方法,如 快速排序,歸併排序等 方法一 採用最簡單的方法 include include in...

查詢最小的k個元素

題目 輸入n個整數,輸出其中最小的k個數 例如 1 2 3 4 5 6 7 8 這8個數字,則最小的4個數字為1,2,3,4,第一種 直接對其先排序,再取頭幾個數 這樣最快是nlogn 快排或者堆排 include using namespace std void partsort int a,in...