美文网首页
插入排序

插入排序

作者: 明月几何8 | 来源:发表于2022-08-10 11:16 被阅读0次

    插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。


    insertionSort.gif
    public class InsertionSort {
        //核心代码---开始
        public static void sort(Comparable[] arr) {
    
            int n = arr.length;
            for (int i = 0; i < n; i++) {
                // 寻找元素 arr[i] 合适的插入位置
                for (int j = i; j > 0; j--)
                    if (arr[j].compareTo(arr[j - 1]) < 0)
                        swap(arr, j, j - 1);
                    else
                        break;
            }
        }
    
        //核心代码---结束
        private static void swap(Object[] arr, int i, int j) {
            Object t = arr[i];
            arr[i] = arr[j];
            arr[j] = t;
        }
    
        public static void main(String[] args) {
    
            Integer[] arr = randomArray();
            InsertionSort.sort(arr);
            for (int i = 0; i < arr.length; i++) {
                System.out.print(arr[i]);
                System.out.print(' ');
            }
        }
    
        /**
         * 获取随机100长度的数组
         *
         * @return 随机数组
         */
        private static Integer[] randomArray() {
            Integer[] array = new Integer[100];
            for (int i = 0; i < array.length; i++) {
                array[i] = (int) Math.floor(Math.random() * 100);
            }
            return array;
        }
    }
    

    相关文章

      网友评论

          本文标题:插入排序

          本文链接:https://www.haomeiwen.com/subject/sftawrtx.html