• 选择排序和插入排序


    选择排序:

    package com.dai.sort;
    
    import java.text.SimpleDateFormat;
    import java.util.Arrays;
    import java.util.Date;
    
    public class SelectSort {
    
        public static void main(String[] args) {
            /*int[] arr = {101, 34, 119, 1};
            selectSort(arr);
            System.out.println(Arrays.toString(arr));*/
            //测试选择排序的速度,8w个数据
            int[] arr = new int[80000]; 
            for(int i=0; i<80000; i++) {
                arr[i] = (int)(Math.random()*8000000);
            }
            Date date1 = new Date();
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String date1String = simpleDateFormat.format(date1);
            System.out.println("排序前的时间为:" + date1String);
            selectSort(arr);
            Date date2 = new Date();
            String date2String = simpleDateFormat.format(date2);
            System.out.println("排序后的时间为:" + date2String);
    
        }
        //选择排序
        public static void selectSort(int[] arr) {
            //逐步推导
            //第一轮 原始数组:101,34,119,1
            for(int i=0;i<arr.length-1;i++) {
                int minIndex = i;
                int min = arr[i];
                for(int j=i+1; j<arr.length;j++) {
                    if(min>arr[j]) {
                        min = arr[j];
                        minIndex = j;
                    }
                }
            //最小值放在arr[0],即交换
            arr[minIndex] = arr[i];
            arr[i] = min;
            }
        }
    
    }

    插入排序:

    package com.dai.sort;
    
    import java.text.SimpleDateFormat;
    import java.util.Arrays;
    import java.util.Date;
    
    public class InsertSort {
    
        public static void main(String[] args) {
            /*int[] arr = {101, 34, 119, 1};
            insertSort(arr);
            System.out.println(Arrays.toString(arr));
        */
            int[] arr = new int[80000]; 
            for(int i=0; i<80000; i++) {
                arr[i] = (int)(Math.random()*8000000);
            }
            Date date1 = new Date();
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String date1String = simpleDateFormat.format(date1);
            System.out.println("排序前的时间为:" + date1String);
            insertSort(arr);
            Date date2 = new Date();
            String date2String = simpleDateFormat.format(date2);
            System.out.println("排序后的时间为:" + date2String);
        }
        public static void insertSort(int[] arr) {
            //定义待插入的数
            int insertVal = 0;
            int insertIndex = 0;
            for(int i=1;i<arr.length;i++) {
                insertVal = arr[i];
                insertIndex = i-1;
                //给insertVal找到插入位置
                while(insertIndex >= 0 && insertVal<arr[insertIndex]) {
                    arr[insertIndex+1] = arr[insertIndex];
                    insertIndex--;
                }
                //退出循环,则找到位置
                if(insertIndex+1 != i)
                    arr[insertIndex+1] = insertVal;
            }
        }
    
    }
  • 相关阅读:
    swoole 安装方法 使用即时聊天
    git的介绍以及简单应用
    curl的应用
    linux下监听和同步代码配置
    mac skim 修改背景色
    php 编译安装的一个 configure 配置
    mac mysql error You must reset your password using ALTER USER statement before executing this statement.
    yii2 控制器里 action 大小写组合造成的路由问题
    warning : json_decode(): option JSON_BIGINT_AS_STRING not implemented in xxx
    redis 自启动脚本
  • 原文地址:https://www.cnblogs.com/shengtudai/p/14390929.html
Copyright © 2020-2023  润新知