Java学习-插入排序1-直接插入排序
2016-05-09 21:29
218 查看
直接插入排序:
基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的,每步将一个待排序的记录,按其顺序码大小插入到前面已经排序的字序列的合适位置(从后向前找到合适位置后),直到全部插入排序完为止。
例如:
代码附上:
package charu;
public class zhijie {
public static void main(String args[]){
int array[] = new int[]{23,52,12,59,48,49,78,98,86,56};
System.out.println("排序之前:");
for(int i=0;i<array.length;i++){
System.out.print(array[i]+" ");
}
//直接插入排序
for(int i=0;i<array.length;i++){
int temp = array[i]; //待插入元素
for(int j=i-1;j>=0;j--){ //将大于temp的元素往后移动一位
if(array[j]>array[j+1]){
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
System.out.println();
System.out.println("排序之后:");
for(int i =0;i<array.length;i++){
System.out.print(array[i]+" ");
}
}
}
运行结果:
排序之前:
23 52 12 59 48 49 78 98 86 56
排序之后:
12 23 48 49 52 56 59 78 86 98
基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的,每步将一个待排序的记录,按其顺序码大小插入到前面已经排序的字序列的合适位置(从后向前找到合适位置后),直到全部插入排序完为止。
例如:
代码附上:
package charu;
public class zhijie {
public static void main(String args[]){
int array[] = new int[]{23,52,12,59,48,49,78,98,86,56};
System.out.println("排序之前:");
for(int i=0;i<array.length;i++){
System.out.print(array[i]+" ");
}
//直接插入排序
for(int i=0;i<array.length;i++){
int temp = array[i]; //待插入元素
for(int j=i-1;j>=0;j--){ //将大于temp的元素往后移动一位
if(array[j]>array[j+1]){
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
System.out.println();
System.out.println("排序之后:");
for(int i =0;i<array.length;i++){
System.out.print(array[i]+" ");
}
}
}
运行结果:
排序之前:
23 52 12 59 48 49 78 98 86 56
排序之后:
12 23 48 49 52 56 59 78 86 98
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序