好多好多排序

原创 2016年08月30日 16:29:10



插入排序


直接插入排序

直接插入排序的基本思想:

每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止


先留下第一个数a[0],从a[1]开始看

每次a[i]先和前面一个数据a[i-1]进行比较

因为a[0...i-1]是有序的,a[i]>a[i-1]时,说明a[0..i]也是有序的,无需调整

如果a[i]<a[i-1],就要将a[i]插入到前面的有序区间,这里再用一个j来操作

如果a[j]前一个数据a[j-1] > a[j],就交换a[j]和a[j-1],再j--直到a[j-1] <= a[j],

(要插入的数只要还小就继续交换向前在接着比较)


public void Insertsort(int[] a,int n){
		for(int i=1;i<n;i++){
			for(int j=i-1;j>=0&&a[j]>a[j+1];j--){
				int temp=a[j];
				a[j]=a[j+1];
				a[j+1]=temp;
			}
		}
	}

直接插入排序的算法性能



时间复杂度 

当数据正序时,执行效率最好,每次插入都不用移动前面的元素,时间复杂度为O(N)。 
当数据反序时,执行效率最差,每次插入都要前面的元素后移,时间复杂度为O(N2)。
所以,数据越接近正序,直接插入排序的算法性能越好。 

空间复杂度

由直接插入排序算法可知,我们在排序过程中,需要一个临时变量存储要插入的值,所以空间复杂度为 1 。

算法稳定性

直接插入排序的过程中,不需要改变相等数值元素的位置,所以它是稳定的算法。 





















如何快速建立好多好多文件夹

那天我看了别人的博客,如何快速建立多个文件夹,让我受到了启发。可是她的那个文件夹要是想建立成白上千个,着实有点浪费时间。后来我就自己奇思妙想了一会,如何短时间能建立超多文件夹,竟然成功了,不多说了,看...
  • jerry11112
  • jerry11112
  • 2017年07月31日 08:52
  • 242

牛客网 好多鱼!(java实现)

牛牛有一个鱼缸。鱼缸里面已经有n条鱼,每条鱼的大小为fishSize[i] (1 ≤ i ≤ n,均为正整数),牛牛现在想把新捕捉的鱼放入鱼缸。鱼缸内存在着大鱼吃小鱼的定律。经过观察,牛牛发现一条鱼A...
  • zjkC050818
  • zjkC050818
  • 2017年03月16日 14:38
  • 462

[编程题] 好多鱼!(牛客网)

题目牛牛有一个鱼缸。鱼缸里面已经有n条鱼,每条鱼的大小为fishSize[i] (1 ≤ i ≤ n,均为正整数),牛牛现在想把新捕捉的鱼放入鱼缸。鱼缸内存在着大鱼吃小鱼的定律。经过观察,牛牛发现一条...
  • qq_30000411
  • qq_30000411
  • 2017年03月19日 23:12
  • 575

2017 浙工业院赛预赛 E 小米买东西【二分+贪心】

时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言262144K 64bit IO Format: %lld 题目描述 小咪是一个土豪手办狂魔,这次他去了...
  • Irish_Moonshine
  • Irish_Moonshine
  • 2017年12月19日 00:00
  • 221

【hdu 1263】 水果(STL)

简单map嵌套应用。 Description 夏天来了~~好开心啊,呵呵,好多好多水果~~  Joe经营着一个不大的水果店.他认为生存之道就是经营最受顾客欢迎的水果.现在他想要一...
  • qwe585p
  • qwe585p
  • 2015年08月12日 11:47
  • 281

从Eclipse迁移代码到Android Studio可能出现的异常

主要还是写的有关项目原有代码从 Eclipse 迁移到 Android Studio 时会遇到的问题,并没有和 Android Studio 的配置有太大关系。 Error:Can't have mo...
  • zhufuing
  • zhufuing
  • 2015年07月13日 11:51
  • 3605

关于浏览器 hack 目前ie版本为IE11

ie hacker
  • ashcn2001
  • ashcn2001
  • 2017年01月17日 10:21
  • 133

AS报错解决方案,一点点收集

gradle编译报错:No such property: sonatypeUsername for class: org.gradle.api.publication.maven.internal.d...
  • QQNKW
  • QQNKW
  • 2017年01月13日 14:17
  • 160

[编程题] 好多鱼!

题目来源:牛客网 [编程题] 好多鱼! 牛牛有一个鱼缸。鱼缸里面已经有n条鱼,每条鱼的大小为fishSize[i] (1 ≤ i ≤ n,均为正整数),牛牛现在想把新捕捉的鱼放入鱼缸。鱼缸内存在着...
  • Cathy1994
  • Cathy1994
  • 2017年03月11日 17:40
  • 308

2017年浙江中医药大学大学生程序设计竞赛 - D CC的神奇背包(贪心)

时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言262144K 64bit IO Format: %lld 题目描述 cc最近收到了好多...
  • Mr_Treeeee
  • Mr_Treeeee
  • 2017年12月24日 19:57
  • 111
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:好多好多排序
举报原因:
原因补充:

(最多只允许输入30个字)