题解 | #排序#

排序

https://www.nowcoder.com/practice/2baf799ea0594abd974d37139de27896

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 将给定数组排序
 * @param arr int整型一维数组 待排序的数组
 * @return int整型一维数组
 */
function MySort( arr ) {
    // write code here
    // 计算数组长度
    let len = arr.length
    //利用插入排序,时间复杂度n^2
    for(let i = 1;i< len;i++){
        for(let j = i;j >=1;j--){
            if(arr[j-1]>arr[j]){
                let temp = arr[j-1]
                arr[j-1] = arr[j]
                arr[j] = temp
            }
        }
    }
    return arr
}
module.exports = {
    MySort : MySort
};

插入排序时间复杂度最好为O(n),最坏为O(n^2),具体分两步操作:

(1)假定第一个元素为最大元素,然后从第二个元素开始,如果小于第一个元素,则交换位置;

note:当前元素并非只与前一个元素进行判断以及交换,而是当前元素与之前所有的元素进行比对。小于就进行交换。

(2)一趟插入排序结束,下一趟会从当前元素的下一个元素开始

全部评论

相关推荐

头像
09-19 19:21
已编辑
门头沟学院 Java
如图,我以为我笔试全A了会约面的......给我看笑了
萨德楽:这不侮辱人吗😂
投递作业帮等公司10个岗位
点赞 评论 收藏
分享
08-15 01:16
Python
Java小萌新新萌小...:照片不用整这么大的 而且你的照片截歪了 你想找专业对口的 那普通话证写在这里其实没有什么必要 就是看着内容多点 而且里面字体大小也不一样 修改一下排版 有很多空间可以再利用一下 字大一点 不然现在这样观感不太好 再就是项目好好优化一下 加油
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务