《java charu排序》

闫新宇 2015-02-06

插入排序

package com.jx.p2p.service;

//插入排序    插入排序算法是一个对少量元素进行排序的有效算法
public class Test {
 static int x;//当前指向数据
 static int y;//当前指向数据前面位置
 public static void getinsertMethod(int[] omts){
  int length = omts.length;
  for(x=1;x<length;x++){//从数组的第二个位置开始执行插入排序,因为假如从第一个数来算的话,找不到插入位置
   int current_value = omts[x];
   y=x-1;
   //顺序从大到小
   while(y>=0 && omts[y]<current_value){//遍历当前元素前的《已经进行过插入操作的前半部分数据》    假如前面的元素比当前元素小,就一直往前移动比对
    omts[y+1]=omts[y];//满足上面条件情况下,需要将已经排好序的小的元素往后移动,以便将当前元素放置到适合的位置,假如不这样操作的话,会影响整体排序
    y--;
   }
   //找到了能够插入的位置y,证明此时y位置上的值比current_value大,那么此时就将current_value插入到y+1位置上即可,进行下次判断插入
   omts[y+1]=current_value;
  }
  for(int item:omts){
   System.out.println(item);
  }
 }
 
 public static void main(String[] args) {
  getinsertMethod(new int[]{23,32,56,98,47,51,24,55});
 }

}

引致:http://zhdkn.iteye.com/blog/1136253

相关推荐