java - 直接插入排序

直接插入排序

排序原理

算法思路:直接插入法是一種最簡單的排序方法,它的基本操作是將一個記錄插入到一個長度爲m的有序表中,使之仍然保持有序。

package sort;

import java.util.Arrays;

//比較多少輪,每輪比較幾次
public class InsertSort {
    public static void main(String[] args){
        int[] arr=new int[] {6,7,2,-9,4,1,0,5,3};
        inserSort1(arr);
        System.out.println(Arrays.toString(arr));
    }

    //插入排序:從索引1處開始,將後面的元素插入到之前的有序列表中使之仍然有序
    public static void inserSort1(int[] arr){
        //外層循環定義輪次
        for(int i =1;i< arr.length;i++){
            int j=i;
            //內層循環進行比較插入
            while(j>0 && arr[j] < arr[j-1]){
                swap(arr,j,j-1);
                j--;
            }
        }
    }

    public static void inserSort2(int[] arr){
        //外層循環定義輪次
        for(int i =1;i< arr.length;i++){
            for(int j =i;j>0;j--){
                if(arr[j] < arr[j-1]){
                    swap(arr,j,j-1);
                }
            }
        }
    }

    //交換數組元素
    public static void swap(int arr[],int a,int b){
        arr[a] = arr[a] + arr[b];
        arr[b] = arr[a] - arr[b];      //把arr[a]賦值給arr[b]
        arr[a] = arr[a] - arr[b];      //剩下的就是arr[a]
    }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章