美文网首页
算法复习之——插入排序

算法复习之——插入排序

作者: 丶你别遗憾 | 来源:发表于2018-11-05 14:04 被阅读0次

    原理

    1.定义一个指针,将指针指向某个元素(一般指向第二个),然后把以这个元素为基准,将整个数组分成两个部分,左侧视为新数组,右侧视为原数组
    2.将此元素抽取出来,然后按照从右向左的顺序分别与其左边的元素比较,遇到比此元素大的就把这个大的元素向右移,直到遇到比它小的元素或者它左边元素都比它大停止
    3.此时会出现一个空位,将此元素插入到这个位置,此时新数组中它左侧元素都比它小,右侧都比它大
    4.将指针右移一位,重复上述过程,每循环一轮,新数组就多一个,原数组就少一个,最后只剩下有序的新数组

    举例分析

    对我来说图形分析比文字分析更容易理解,我在YouTube上看到一个不错的视频,搬运了一下,大家可以观看一下https://www.bilibili.com/video/av35233196/

    源码实现

      for(int i=1;i<arr.length;i++){
        int temp = arr[i];
        int leftIndex = i - 1;
        while(leftIndex >= 0 && arr[leftIndex] > temp){
          arr[leftIndex+1] = arr[leftIndex];
          leftIndex--;
        }
        arr[leftIndex+1] = temp;
      }
    

    相关文章

      网友评论

          本文标题:算法复习之——插入排序

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