直接插入排序(JAVA版)
来源:互联网 发布:mysql 视图 union all 编辑:程序博客网 时间:2024/05/20 17:07
直接插入排序
已知一组,一组无序数据b[1]、b[2]、……b[m],需将其变成一个升序数列。先创建一个变量a。首先将不b[1]与b[2],如果b[1]大于b[2]则交换位置,否则不变;再比较b[2]与b[3],如果b[3]小于b[2],则将b[3]赋值给a,再将a与b[1]比较,如果a小于b[1];则将b[2],b[1]依次后移;在将a放在b[1]处以此类推,直到排序结束。
public class insertSort {
public static void main(String[] args)
{
int maxSize=100;
ArrayIns arr;
arr=new ArrayIns(maxSize);
arr.insert(77);
arr.insert(99);
arr.insert(44);
arr.insert(55);
arr.insert(22);
arr.insert(88);
arr.insert(11);
arr.insert(00);
arr.insert(66);
arr.insert(33);
arr.display();
arr.insertSort();
arr.display();
}
}
class ArrayIns
{
private int[] a;
private int nElems;
//构造函数
public ArrayIns(int max)
{
a=newint[max];
nElems=0;
}
//插入数据
public void insert(int value)
{
a[nElems]=value;
nElems++;
}
//显示数组数据
public void display()
{
for(int j=0;j<nElems;j++)
System.out.println(a[j]+" ");
System.out.println(" ");
}
public void insertSort()
{
int out,temp,in;
for(out=1;out<nElems;out++)
{
temp=a[out];
in=out;
while(in>0&&a[in-1]>=temp)//寻找插入位置
{
a[in]=a[in-1];
in--;
}
a[in]=temp;
}
}
}
原数组: 77 99 44 55 22 88 11 0 66 33
插入第一趟:77 99 44 55 22 88 11 0 66 33 比较1次
插入第二趟:44 77 99 55 22 88 11 0 66 33 比较2次
插入第三趟:44 55 77 99 22 88 11 0 66 33 比较3次
插入第四趟:22 44 55 77 99 88 11 0 66 33 比较4次
插入第五趟:22 44 55 77 88 99 11 0 66 33 比较5次
插入第六趟:11 22 44 55 77 88 99 0 66 33 比较6次
插入第七趟:0 11 22 44 55 77 88 99 66 33 比较7次
插入第八趟:0 11 22 33 44 55 77 88 99 66 比较8次
插入第九趟:0 11 22 33 44 55 66 77 88 99 比较9次
插入排序效率分析:
比较的次数:
1+2+3+4+5+6+7+8+9=45;
当数组的元素为N时,比较的次数为:N*(N-1)/2;
所以比较的次数为:o(N*N);
当数组全部有序的时候,将一个数插入到有序数组中时,需要比较N-1次。
所以比较的次数为:o(N);
- 直接插入排序(JAVA版)
- 直接插入排序java版
- 直接插入排序(java版)
- java直接插入排序
- java 直接插入排序
- java直接插入排序
- Java直接插入排序
- 直接插入排序 java
- 直接插入排序 - Java
- 直接插入排序 Java
- 直接插入排序-java
- Java直接插入排序
- Java 直接插入排序
- 直接插入排序 (Java)
- Java直接插入排序
- [java]直接插入排序
- Java直接插入排序
- 直接插入排序java
- 老师说 要坚持写博客。。
- Poj 2411 Mondriaan's Dream(压缩矩阵DP)
- STL之Vector
- 常用的二值化方法
- Android开发之ProcessState和IPCThreadState类分析
- 直接插入排序(JAVA版)
- windows如何在cmd命令行提示符中显示当前的时间
- Android利用ViewFlipper实现屏幕切换动画效果
- 计算几何 常用算法模版
- some online hack game and simulation tests platform
- C#---线程间操作无效: 从不是创建控件“txtreceive”的线程访问它
- Android应用开发学习笔记之图片切换器
- 大数据类
- JQuery