讨论/《排序算法全解析》 - 解析/
《排序算法全解析》 - 解析
共 9 个回复

这题要用冒泡排序地改良版-----快速排序

2

使用优化版本的js bubble sort。

/**
 * @param {number[]} arr
 * @param {number} k
 * @return {number[]}
 */
var getLeastNumbers = function(arr, k) {
    if (Array.isArray(arr) && arr.length) {
        // bubble sort
        let isSwapped = true
        let indexOfUnsortedElement = arr.length - 1
        let lastSwappedIndex = -1
        while (isSwapped) {
            isSwapped = false
            for (let i = 0; i < indexOfUnsortedElement; i++) {
                if (arr[i] > arr[i+1]) {
                    const tmp = arr[i+1]
                    arr[i+1] = arr[i]
                    arr[i] = tmp
                    isSwapped = true
                    lastSwappedIndex = i
                }
            }
            indexOfUnsortedElement = lastSwappedIndex
        }
        return arr.slice(0, k)
    }
    return []
};


    #冒泡排序 ----> 超时
    n = len(arr)
    for i in range(0,n):
        for j in range(0,n-1-i):
            if arr[j] > arr[j+1]:
                arr[j+1] = arr[j] + arr[j+1]
                arr[j] = arr[j+1] - arr[j]
                arr[j+1] = arr[j+1] - arr[j]
    return arr[0:k]

python用冒泡排序,结果超时 -_-,难顶哦

c++还得是用那个快排思想比较顺手,冒泡完美超时

leetcode貌似java快一些,我用c++优化后的冒泡过不了.

我用最基础的那个冒泡法,没有超时

冒泡超时了……

虽然结果对,但这题解超时呀,这里不太适合用冒泡,更适合快排吧