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

算法复习之——插入排序

作者: 丶你别遗憾 | 来源:发表于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