劍指offer 最小的K個數

2021-09-11 20:50:42 字數 663 閱讀 4733

輸入n個整數,找出其中最小的k個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,。

構建大頂堆排序進行實現,

**如下:

class solution 

heapsort(input);

for(int i=0;i&l)

for (i= l.size()-1; i>0; i--)

}void heapadjust(vector&l, int s, int m) //堆調整

l[s] = l[j];

s = j;

} l[s] = tmp;

} void swap(vector&l, int i, int j)

};

使用關聯容器實現,利用set的自排序功能,對input進行排序,然後再輸出

**如下:

vectorgetleastnumbers_solution(vectorinput, int k) 

int count=0;

sets1(input.cbegin(),input.cend());

auto it=s1.begin();

while(countreturn vec;

}

劍指offer 最小k個數

1.題目 輸入n個整數,找出其中最小的k個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,2.方法 1 基於堆排序演算法,構建最大堆。時間複雜度為o nlogk 2 如果用快速排序,時間複雜度為o nlogn 3 如果用插入排序,時間複雜度為o n 2 3.演...

劍指offer 最小的K個數

華電北風吹 天津大學認知計算與應用重點實驗室 日期 2015 10 4 題目描述 輸入n個整數,找出其中最小的k個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,解析 基於插入排序的思想可以想到使用乙個長度為k的排序陣列儲存最小的k個元素,複雜度o nk 基於...

《劍指offer》最小的K個數

輸入n個整數,找出其中最小的k個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,輸入給整數陣列,和k 找出其中最小的k個數 class solution 1 先用插入排序對陣列中數進行排序。2 取出有序陣列中最小的kge。附 這只是乙個比較簡單的方法。如果考慮...