算法基础 | 插入排序

插入排序

算法描述:
从第一个元素开始,该元素可以认为已经被排序
取出下一个元素,在已经排序的元素序列中从后向前扫描
如果该元素(已排序)大于新元素,将该元素移到下一位置
重复步骤3,直到找到已排序的元素小于或者等于新元素的位置

public class InsertSort {

    public static void main(String[] args) {
        InsertSort insertSort = new InsertSort();
        Integer[] numbers = new Integer[]{10, 8, 3, 7, 9, 1, 4};
        insertSort.sort(numbers);
        Arrays.asList(numbers).stream().forEach(System.out::println);
    }

    public void sort(Integer[] numbers) {
        for (int i = 0; i < numbers.length - 1; i++) {
            int j = i;
            int c = numbers[i + 1];
            while (j >= 0 && c < numbers[j]) {
                numbers[j + 1] = numbers[j];
                j--;
            }
            numbers[j + 1] = c;
        }
    }
}

希尔排序

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。