java算法——插入排序

来源:互联网 发布:帮助减肥的软件 编辑:程序博客网 时间:2024/05/21 05:20

//插入排序
/* 
 * 例如:
 * 原序列:[12] 15 9 20 6 31 24
 * 第一趟:[12 15] 9 20 6 31 24
 * 第二趟:[9 12 15] 20 6 31 24
 * 第三趟:[9 12 15 20] 6 31 24
 * 第四趟:[6 9 12 15 20] 31 24
 * 第五趟:[6 9 12 15 20 31] 24
 * 第六趟:[6 9 12 15 20 24 31]
 * 
 * n个数需要排n-1趟
 * 
 * 第一趟:把1位置的数,插入到0和1的位置之间的数中间,让他排好序
 * 第二趟:把2位置的数,插入到0和2的位置之间的数中间,让他排好序
 * 第三趟:把3位置的数,插入到0和3的位置之间的数中间,让他排好序
 * ...

 * 第i趟:把i位置的数,插入到0和i的位置之间的数中间,让他排好序
 * */


<span style="font-size:18px;"><span style="font-size:24px;">/* * 功能:java实现插入排序 * */package Shuzu;public class paixun2 {public static void main(String[] args) {// TODO Auto-generated method stubint[] arr1={1,6,0,-1,9,-100,90};Insert insert=new Insert();insert.Sort(arr1);//输出排序后的数组for(int i=0;i<arr1.length;i++){System.out.print(" "+arr1[i]);}}}//插入排序法class Insert{public void Sort(int arr[]){for(int i=1;i<arr.length;i++){int insertVal=arr[i];//inserVal准备和前一个数相比较int index=i-1;while(index>=0 && insertVal<arr[index]){//将arr[index]向后移一位arr[index+1]=arr[index];//让index向前移index--;}//将inserVal插入到适当位置arr[index+1]=insertVal;}}}</span></span>

.运行效果:


0 0
原创粉丝点击