当前位置:   article > 正文

【数据结构与算法 11,互联网大厂面试必问的JVM底层原理_数据结构这门课会教jvm原理吗

数据结构这门课会教jvm原理吗
    int min = arr[minIndex];

    for(int j  = 1 + i;j<arr.length;j++){

        if(min > arr[j]){

            min = arr[j];

            minIndex = j;

        }

    }

    arr[minIndex] = arr[i];

    arr[i] = min;

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

}




4、速度测试



选择排序:120000数据,4秒



![](https://img-blog.csdnimg.cn/20200523091411841.png)



### (三)插入排序



1、基本思想



把n个待排序的元素第一位看成有序表,其它的看成无序表,排序过程中,每次从无序表中取出一个数,依次与有序表中的数进行比较,插入到合适的位置。



2、动态效果图



![](https://img-blog.csdnimg.cn/2020052200155496.gif)



3、代码实现



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39

//插入排序

public static void insertSort(int[] arr ){

int insertVal = 0;

int insertIndex = 0;

for (int i = 1; i < arr.length; i++) {

    //定义待插入的数

    insertVal = arr[i];

    // 即arr[i]的前面这个数的下标

    insertIndex = i - 1;

    // 给insertVal 找到插入的位置

    // 说明

    // 1. insertIndex >= 0 保证在给insertVal 找插入位置,不越界

    // 2. insertVal < arr[insertIndex] 待插入的数,还没有找到插入位置

    // 3. 就需要将 arr[insertIndex] 后移

    while(insertIndex >= 0 && insertVal < arr[insertIndex]){

        arr[insertIndex+1] = arr[insertIndex];

        insertIndex--;

    }

    // 当退出while循环时,说明插入的位置找到, insertIndex + 1

    if(insertIndex + 1 != i){

        arr[insertIndex+1] = insertVal;

    }

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

}




4、速度测试



插入排序:120000数据,1秒



![](https://img-blog.csdnimg.cn/20200523091529335.png)



### (四)希尔排序



1、基本思想



希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法也是冲破O(n²)的第一批算法之一。它与插入排序的不同之处在于,它会优先比较较远的元素。



2、效果图



![](https://img-blog.csdnimg.cn/20200523135326850.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/163921?site
推荐阅读
相关标签
  

闽ICP备14008679号