1. 程式人生 > >排序整理——直接插入排序

排序整理——直接插入排序

       直接選擇排序(Straight Select Sorting) 也是一種簡單的排序方法,它的基本思想是:第一次從R[0]~R[n-1]中選取最小值,與R[0]交換,第二次從R[1]~R[n-1]中選取最小值,與R[1]交換,....,第i次從R[i-1]~R[n-1]中選取最小值,與R[i-1]交換,.....,第n-1次從R[n-2]~R[n-1]中選取最小值,與R[n-2]交換,總共通過n-1次,得到一個按排序碼從小到大排列的有序序列。 

package myself;

import java.util.Arrays;

public class InsertSort{

    public static void main(String []args){
       int a[]={12,0,23,56,26,3,5,6,9,7,2,3};
       insertSort(a);
       System.out.println(Arrays.toString(a));
    }
    public static void insertSort(int a[]){
        //遍歷所有的數字
        for(int i=1;i<a.length;i++){
            //如果當前數字比前一個數字還小
            if(a[i]<a[i-1]){
                //把當前遍歷數字當作臨時變數存起來
                int temp=a[i];
                int j;
                //遍歷當前數字前面所有的數字
                for(j=i-1;j>=0&&temp<a[j];j--){
                    a[j+1]=a[j];//把前一個數字賦給後一個數字
                }
                //把臨時變數(外層for迴圈的當前元素)賦給不滿足條件的後一個
                a[j+1]=temp;
            }
        }
    }
}