最近看编程之美,发现排序算法是其基础。若排序算法掌握的不牢固,看起来很是头疼,于是又从新看了一遍排序算法。在网上查了一下,发现有很多,但是纸上得来终觉浅,自己根据算法思想做了一遍。插入排序算法思想如下:
- 从第一个元素开始,该元素可以认为已经被排序
- 取出下一个元素,在已经排序的元素序列中从后向前扫描
- 如果该元素(已排序)大于新元素,将该元素移到下一位置
- 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置
- 将新元素插入到该位置后
- 重复步骤2~5
具体代码如下:
public class Insertarray {
public static void main(String[] args){
int[] array={1,4,7,2,5,8,3,6,9};
int temp ;
for(int i=1;i<array.length;i++){
temp = array[i];//取出待排序元素
int j=i;//指向当前待排序元素
//从后向前遍历,看前面的元素是否大于当前待排序元素,如果大于则把当前元素后移
while((j>0)&&(array[j-1]>temp)){
array[j]=array[j-1];
j--;
}
//不大于则是其插入位置
array[j]=temp;
}
for(int i=0;i<array.length;i++){
System.out.print(array[i]+" ");
}
}
}
相关推荐
java插入排序算法,简单方便实用!很好的实现!
java编写的插入排序算法
Java语言实现的直接插入排序算法,代码里头有详细注释,注释皆为简单英文,因为这个算法比较简单,欢迎新手下载学习使用,欢迎后期的学习交流!
自己写的java 插入排序算法,分享给大家,共同进步
选择排序和冒泡排序想必大家都很熟悉,但插入排序一般新手却很难理解,插入排序的Java源代码
插入排序算法java代码,望对大家有帮助
一段比较简便、易懂,且能运行的JAVA代码。运用的是插入排序法对10个数字进行排序。
针对200000长度的数组,采用插入排序和合并排序,对比两种算法的时间复杂度
使用Java实现简单的插入排序算法,提供参考思路,欢迎大家斧正。
java排序算法java排序算法插入选择冒泡java排序算法插入选择冒泡
编写选择排序,插入排序,自顶向上合并排序,合并排序,快速排序,理解各排序算法的实现原理,加深对排序算法的理解。
详解Java常用排序算法-插入排序
做了个Java Swing 图形界面,选择3中排序方法进行排序。工程用NetBeans 打开,运行Main.java文件或直接点击运行主程序,...BinSort.java(折半插入排序) QKSort.java(快速排序算法) SelectSort.java(简单选择排序)
JAVA实现插入排序,简单演示
在Java中,插入排序的实现通常涉及两个嵌套的循环。外层循环用于遍历未排序的元素,内层循环则用于在已排序序列中查找待插入元素的位置,并进行相应的元素移动和插入操作。尽管插入排序在处理大数据集时效率不高,但...
实现合并排序,插入排序,希尔排序,快速排序,冒泡排序,桶排序算法的java实现。
排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序.mht
用户能够从终端选择三种排序算法中的一种,包括插入排序,堆排序,选择排序,同时被排序的数也可以通过键盘输入,不限制输入的数字的个数,运用了Java的面向对象的思想
Java各种排序算法集合: 1)插入排序(直接插入排序、希尔排序) 2)交换排序(冒泡排序、快速排序) 3)选择排序(直接选择排序、堆排序) 4)归并排序 5)分配排序(箱排序、基数排序)
给初学者学习算法用,用java实现的排序算法,包括二路归并和插入排序。