插入排序(两个for循环实现)---java
项目思路:
1将数组分为两部分看待,一部分是排序后的数组,一部分是要插入到排序后数组的元素。默认按从小到大排序
2将要插入的数据x,以其前面的有序数据一次进行比较,如果有序数据大于数据x,则有序数据一次后移一位,空出一个位置使x插入,这个位置前面的数据都比x小,后面的都比x大。
注:一次后移比较重要
gitee地址
项目代码:
插入排序函数sort(int[] array)
注解:index是用来记录要插入位置的下标。内层循环是后移
public static void sort(int[] array) {
        int temp;//保存要插入变量的值
        int index;//记录插入地方的下标
        for (int i = 1; i < array.length; i++) {
            index = i;
            temp = array[i];
            for (int j = i; j > 0; j--) {
                if (temp < array[j - 1]) {
                    array[j] = array[j - 1];
                    index = j - 1;
                }
            }
            array[index] = temp;
        }
    } 
总体代码
注解:主要理解下sort函数就好了
package DataStructures.sort;
/**
 * @author :ALi
 * @date :Created in 2021/11/8 8:59
 * @description:插入排序
 * @modified By:
 * @version: $
 */
public class InsertSort {
    public static void main(String[] args) {
        int[] array = {1, 2, 3, 5, 4, -1};
        sort(array);
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i] + " ");
        }
    }
    public static void sort(int[] array) {
        int temp;//保存要插入变量的值
        int index;//记录插入地方的下标
        for (int i = 1; i < array.length; i++) {
            index = i;
            temp = array[i];
            for (int j = i; j > 0; j--) {
                if (temp < array[j - 1]) {
                    array[j] = array[j - 1];
                    index = j - 1;
                }
            }
            array[index] = temp;
        }
    }
}
				       
			          
