java 插入排序

概念:java

  一般人們整理橋牌的方法是一張一張的來,將每一張牌插入到其餘已經有序的牌中的適當位置。在計算機的實現中,爲了要給插入的元素騰出空間,咱們須要將其他全部元素在插入以前都向右移動一位。與選擇排序同樣,當前索引左邊的全部元素都是有序的,但他們的最終位置還不肯定,爲了給更小的元素騰出空間,它們可能會被移動。可是當索引達到數組的右端時,數組排序就完成了。和選擇排序不一樣的是,插入排序所需的時間取決於輸入中元素的初始順序。數組

 

package com.test;

import java.util.Arrays;

public class InsertSort {
    
    public static void main(String[] args) {
        int test[] = {49,38,65,97,76,13,27,49};
        sort(test);
        System.out.println(Arrays.toString(test));
    }
    
    public static void sort(int[] a) {
        int j, sort;
        for (int i = 1; i < a.length; i ++) { // 從數組的第二個元素開始循環將數組中的元素插入
            
            sort = a[i];    // 設置數組中的第二個元素爲第一次循環要插入的元素
            j = i - 1;
            while (j >= 0 && sort < a[j]) {
                a[j + 1] = a[j];    // 若是要插入的元素小於第j個元素,就將第j個元素向後移動
                j --;
            }
            a[j + 1] = sort; // 直到要插入的元素不小於第j個元素,將sort插入到數組中
        }
    }
}
相關文章
相關標籤/搜索