zoukankan      html  css  js  c++  java
  • 选择排序和插入排序

    选择排序:

    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;
            }
        }
    
    }
  • 相关阅读:
    训练深度学习网络时候,出现Nan 或者 震荡
    Jupyter Notebook 的快捷键
    pyspark RandomForestRegressor 随机森林回归
    深度学习图像标注工具VGG Image Annotator (VIA)使用教程
    python 中 with 用法
    python 报错 SyntaxError: Non-ASCII character
    YOLO 详解
    Spark与Pandas中DataFrame对比
    利用WGET下载文件,并保存到指定目录
    http 三次握手
  • 原文地址:https://www.cnblogs.com/shengtudai/p/14390929.html
Copyright © 2011-2022 走看看