美文网首页
二、基本算法

二、基本算法

作者: 爱泡脚的CXY | 来源:发表于2018-04-21 22:29 被阅读0次

    一、选择排序

    核心思想:

        以数组为例:取出数组的最大值(最小值),然后将最大值与数组的第一位进行交换。

    讲解:第一次遍历获取第一位到最后一位的最大值,与第一位交换位置,第二次遍历获取第二位到最后一位的最大值与第二位交换位置,以此类推,当数组遍历完成后数组也就排序完成。

    代码:

    二、插入排序

    核心思想:

            将数据插入到一个有序的数组中。

    讲解:将数组的第一位看成有序的,从第二位开始与其前一位进行比较,如果大于前一位就交换位置否则进行第三位,第三位与第二位进行比较,第三位大于第二位,交换位置然后与第一位比较大于就交换位置,否则进入第四位,以此类推,思想也比较简单。

            看代码理解:

    插入排序

    三、插入排序的优化

    正常来说,插入排序较选择排序来说循环可以提前终止,理论上插入应该比选择效率要高。但是经过测试后发现,其效率比低。究其原因是因为每一次交换需要三次赋值,大大降低了其效率。

    优化思想,将需要插入的数据取出来,与前一位进行比较,如果满足判断条件就将前一位向后移一位,若不满足条件就将其赋值给前一位(注意数组下表越界问题)。

    代码:

    优化后的插入排序

    优化后效率明显提升,对于数据来说,越有序的数据使用插入排序效率越高,插入排序是O(n2)级别的算法,对于一个有序的数据,其效率为O(n)。插入排序的优化应该掌握。

    相关文章

      网友评论

          本文标题:二、基本算法

          本文链接:https://www.haomeiwen.com/subject/scmuqftx.html