插入排序的java实现

简介

插入排序也是一种思想很简单的排序方法,它通过比较当前元素和其之前已排好序的元素的大小,找到合适的位置插入,并把插入位置后的元素往后移动。

复杂度

时间复杂度

1.最好的情况就是已经排好序的数组,这样一次都不用交换
2.最坏的情况就是完全逆序的数组,这样每个元素都要挪动,每次都要交换,次数为1+2+3+…+n-1=n(n-1)/2,时间复杂度为O(n2)(即n的平方)
3.平均时间复杂度为O(n2),是一种稳定的排序方法

空间复杂度

插入排序和冒泡排序一样是时间换空间的排序方法,没有使用多余的数据结构,不用分配额外的空间,所以空间复杂度为O(1)

java实现

  public void insertionSort(int[]a)
{
      for(int i=0;i<a.length-1;i++)
   {
          int currentItem=a[i+1];
          for(int j=i;j>=0;j--)
       {
            if(currentItem<a[j])
           {
                a[j+1]=a[j];
                a[j]=currrentItem;
           }
             else
           {
                a[j+1]=currentItem;
                break;
           }
       }
   }
}

That's all.

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

相关阅读更多精彩内容

  • 概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的...
    Luc_阅读 2,392评论 0 35
  • 概述:排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    每天刷两次牙阅读 3,849评论 0 15
  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 5,334评论 0 52
  • 从倡行男女平等时期开始,社会日益发达进步,到了如今这个社会,女性变得越来越独立,越来越有自己的思想,越来越有勇气去...
    紫苑书阁阅读 190评论 0 0
  • (1) 第一次遇见张爱玲的长篇小说《半生缘》,是在高中时代的报刊亭里。 那时候的课外阅读书还不多,很多的小说名著,...
    小小芬达阅读 800评论 3 4

友情链接更多精彩内容