直接插入排序法

package www.bite.PaiXu;

import java.lang.reflect.Array;

/**
 * 直接选择排序:在元素集合中直接选出最大(小)的元素,若他不是最后一个(第一个)元素则他与最后一个(第一个)元素交换 升序排序
 * 
 * @author 宋典
 *
 */
class sort1 {
    int j = 0;
    int min = 0;

    public void ways1(int[] value) {
        for (int i = 0; i < value.length; i++) {
            min = i;
            for (j = i + 1; j < value.length; j++) {
                if (value[min] > value[j]) {
                    min = j;  //记录当前最小值得位置
                }
            }
            if(min!=i) {//检验最小值的位置是否还是之前的位置,不是则交换
                int temp=value[i];
                value[i]=value[min];
                value[min]=temp;
            }
        }
    }
}
class InsertSort{ //直接插入排序
    public void direct(int value[]) {
        int bound=1;
        
        for( bound=1;bound<value.length;bound++) {//默认第一个有序
            int bound_value=value[bound];
            int i=bound;
            for( i=bound;i>0;i--) { //无序部分
                if(value[i-1]>bound_value) { //将无序部分调整为有序
                    value[i]=value[i-1]; //数值交换将前后两个数值,不断交换
                }else {
                    break;
                }
            }
            value [i]=bound_value;//数值交换完毕后第一个的数值交换成一开始记录的数字
        }
        
    }    
}
public class ChooseSort {

    public static void main(String[] args) {
        int value[] = { 1, 2, 5, 92, 6, 90, 9, 7, 2 };     
        InsertSort a=new InsertSort();
        a.direct(value);
        for(int i=0;i<value.length;i++) {
            System.out.println(value[i]);
        }
    }

}
 

猜你喜欢

转载自blog.csdn.net/sd116460/article/details/81190544
今日推荐