劍指offer 30 最小的k個數

2021-07-31 15:07:21 字數 587 閱讀 4573

//題目:給出乙個陣列,輸出最小的k個數

//解法1:類似於快排的方式,找到index,知道index等於k時,前面的k個數就是最小的數

public class main ,5);

} public static void getmaxnum(int input,int k)else

} for(int i = 0;i=input[low])

input[high] = input[low];

} input[low] = temp;

return low; }}

//解法2:先取k個數組成大根堆,然後與之後的數字進行比較,再進行堆的調整

public class main ,5); }

public static void getmaxnum(int input,int k) }

public static void adjustdown(int input, int length, int k)

if(temp>=input[i])else

} input[k] = temp; }

}

劍指offer 30 最小的k個數

輸入n個整數,找出其中最小的k個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,用partition求出第k小的數,這個數的左邊就是最小的k個數。本來是這樣的。可是,執行沒通過!超時?先記錄下來吧。coding utf 8 class solution def...

劍指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 基於...