算法复习之——插入排序

原理

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;
  }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; ...
    朱森阅读 8,828评论 3 44
  • HTML 5 HTML5概述 因特网上的信息是以网页的形式展示给用户的,因此网页是网络信息传递的载体。网页文件是用...
    阿啊阿吖丁阅读 10,055评论 0 0
  • 今天周四,下班后是公司羽毛球社定期的活动。这是国庆假期后的首次打球,也距离我上次打球有近半个月了。 之前我们的频率...
    香草糖阅读 1,774评论 0 2
  • 由于原生家庭的原因,年龄的原因,生理内分泌紊乱,心情烦躁、焦虑、不安、失眠常常困扰我,学习焦点后,使我成长了很多、...
    潘巧阅读 1,778评论 1 0
  • 这种天气秋裤要穿,还要穿厚,昨天上面穿了四件,下面穿了一件,清鼻涕不知不觉就流出来了,难受。
    哲珠阅读 1,369评论 3 0

友情链接更多精彩内容