插入排序

import java.util.Arrays;

/**
 * 插入排序的思想:
 *  插入排序是将新的元素插入到一个排好序的子线性表中,直到整个线性表排好序
 *  具体操作是:循环遍历整个待排序的表,将当前访问的元素赋值给一个临时变量curElement,
 *            然后利用一个内循环从当前位置i的前一个位置k(k = i - 1)开始逐个位置向前遍历,
 *            寻找小于或等于curElement的元素位置,或k < 0时结束,表示curElement应该位于数组第一个位置
 */
public class InsertSort {


    public static void insertSort(int[] arr){


        for (int i = 0; i < arr.length; i++) {
            
            int curElement = arr[i];
            int k;

            for (k = i - 1; k >=0 && arr[k] > curElement; k--) {

                arr[k + 1] = arr[k];
            }

            arr[k + 1] = curElement;
        }
    }

    public static void main(String[] args) {

        int[] nums = {2,9,5,4,8,1,6,7};
        insertSort(nums);
        System.out.println(Arrays.toString(nums));
    }
}
posted @ 2021-06-22 13:35  有心有梦  阅读(29)  评论(0编辑  收藏  举报