SOURCE

let arr = generateNum()
//随机生成数据
function generateNum(max) {
    max = max == null ? 10000 : max
    let temp = []
    
    for(let i = 0; i < max; i++) {
        let limit = max > 10000 ? max : 10000
        let item = parseInt(Math.random()*limit)
        temp.push(item)
    }
    return temp
}
//冒泡排序
function bubbleSort(arrData){
    for(let i=0; i < arrData.length - 1; i++){
        for(let j=0; j < arrData.length - 1 - i; j++){
            if(arrData[j] > arrData[j+1]) {
                let temp = arrData[j+1]
                arrData[j+1] = arrData[j]
                arrData[j] = temp
            }
        }
    }
    return arr
}
// console.time('bubbleSort')
// let arr1 = bubbleSort(arr)
// console.timeEnd('bubbleSort')
//快速开排序
function quickSort(arrData,l,r){
    if(l>=r)return;
    let i = l,j = r, temp = arrData[l];
    while(i < j) {
        while(i<j && arrData[j] > temp)
            j--
        arrData[i] = arrData[j]
        while(i<j && arrData[i] <= temp)
            i++
        arrData[j] = arrData[i]
    }
    arrData[i] = temp
    quickSort(arrData,l,i-1)
    quickSort(arrData,i+1,r)
}
// let arr2 = generateNum()
// console.time('quickSort')
// quickSort(arr2,0,arr2.length - 1)
// console.timeEnd('quickSort')
//选择排序
function selectSort(arrData) {

    for(let i=0;i<arrData.length- 1;i++){
        let minIndex = i
        for(let j=i+1;j<arrData.length;j++){
            if(arrData[minIndex] > arrData[j]){
                minIndex = j
            }
        }
        if(minIndex != i) {
            let temp = arrData[i]
            arrData[i] = arrData[minIndex]
            arrData[minIndex] = temp
        }
    }
}
// let arr3 = generateNum()
// console.time('selectSort')
// selectSort(arr3)
// console.timeEnd('selectSort')
// 插入排序
let arr4 = generateNum()
function InsertionSort(arrData) {
    let len = arrData.length
    let preIndex,current
    for(let i=0; i<len;i++){
        current = arrData[i]
        preIndex = i - 1
        while(preIndex >= 0 && arrData[preIndex] > current){
            arrData[preIndex+1] = arrData[preIndex]
            preIndex--
        }
        arrData[preIndex+1] = current
    }
    return arrData
}
// console.time('InsertionSort')
// let arr5 = InsertionSort([4,3,1,2])
// console.timeEnd('InsertionSort')

var luckyNumbers  = function(matrix) {
    let tempArry = []
    for(let i=0; i<matrix.length;i++) {
        let item = matrix[i]
        let minRow = Math.min(...item)
        let index = item.indexOf(minRow)
        let arr = matrix.map(element => {
            return element[index]
        })
        let maxColumn = Math.max(...arr)
        if(minRow === maxColumn) {
            tempArry.push(minRow)
            return tempArry
        }
     }
     return tempArry
};
let ss = [[1,10,4,2],[9,3,8,7],[15,16,17,12]]
console.time('luckyNumbers')
console.log(luckyNumbers(ss))
console.timeEnd('luckyNumbers')
console 命令行工具 X clear

                    
>
console