• 排序算法总结选择排序 javascript描述


    每当面试时避不可少谈论的话题是排序算法,上次面试时被问到写排序算法,然后脑袋一懵不会写,狠狠的被面试官鄙视了一番,问我是不是第一次参加面试,怎么可以连排序算法都不会呢?不过当时确实是第一次去面试,以此恶补排序算法。

    一、基本排序算法:基本排序算法有冒泡排序,选择排序,插入排序。

    1. 选择排序算法思想:选择排序从数组的头开始,将第一个元素与其他元素进行比较,找到最小的元素,然后放到数组的第一个位置。然后再从第二个元素开始找比他小的元素,放到第二个位置,以此类推,重复上述步骤,当进行到数组的第二个位置时,就完成了排序。

    代码如下:

    function selectionSort(arr) {
            var k, temp;
            for (var i = 0; i < arr.length-1; i++) {
                var min = i;
                for (var j = i + 1; j < arr.length; j++) {
                    if (arr[min] > arr[j]) {
                        min = j;
                    }
                }
                if (min != i) {
                    temp = arr[min];
                    arr[min] = arr[i];
                    arr[i] = temp;
                }
            }
            return arr;
        }

    分析:外层循环表示从数组的第一个元素移动到倒数第二个元素;内循环从第二个元素到最后一个元素,查找比当前外循环所指向元素小的位置,每次内循环迭代后记录下最小值的下标,然后与外层循环所指向的值交换,将数组中最小的值交换到合适的位置。由此可以推出时间复杂度为:O(n*n)。意味着在n比较小的情况下,算法可以保证一定的速度,当n足够大时,算法的效率会降低。并且随着n的增大,算法的时间增长很快。因此使用时需要特别注意。静等下章来看冒泡排序。

  • 相关阅读:
    打开模拟器genymotion 的设置 查询设置的包名
    python 地板除 向下取整 取比目标结果小的的最大整数
    python 复数
    python 0.1+0.2 不等于0.3 的处理办法
    python 利用随机数的种子,复现随机数
    小程序 单独页面的js文件里设置 数据绑定
    问题集
    2020软件工程个人作业06——软件工程实践总结作业
    2020软件工程作业05
    2020软件工程作业04
  • 原文地址:https://www.cnblogs.com/hxc555/p/5905090.html
Copyright © 2020-2023  润新知