Java之Algorithm_analysis案例详解

 更新时间:2021年09月11日 10:50:33   作者:lxj_csdn  
这篇文章主要介绍了Java之Algorithm_analysis案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
/*
冒泡排序:双层循环
1.外层循环:控制排序轮数,排序数组长度减1(最后一次循环只剩下一个元素,不需要比较,同时数组已完成排序。
 
2.内层循环:比较数组临近元素大小,确定是否交换位置,对比和交换次数随排序轮数而减少。
 */
public class BubbleSort {
    public void sort(int[] array){
        for(int i=1;i<array.length;i++){//控制轮数
            //比较相邻两个元素,较大的数往后冒泡
            for(int j=0;j<array.length-i;j++){//控制交换次数
                if(array[j]>array[j+1]){//第一个数大于第二个数,进行交换
                    int temp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = temp;
                    System.out.println("第-------"+j+"-------次");
                }
                System.out.println("第"+i+"轮");
                showArray(array);
            }
        }
        showArray(array);
    }
    /*
    显示数组
     */
    public void showArray(int[] array){
        for(int i:array){//遍历数组
            System.out.print("  》"+i);
        }
        System.out.println();
    }
    public static void  main(String[] args) {
        //创建一个数组,这个数组元素是乱序的
        int[] array = {63,4,24,1,3,15};
        System.out.println("数组长度:"+array.length);
        System.out.println("=========================");
        //创建冒泡排序类对象
        BubbleSort sorter = new BubbleSort();
        //调用排序方法将数组排序
        sorter.sort(array);
    }

显示结果

数组长度:6
=========================
第-------0-------次
第1轮
》4  》63  》24  》1  》3  》15
第-------1-------次
第1轮
》4  》24  》63  》1  》3  》15
第-------2-------次
第1轮
》4  》24  》1  》63  》3  》15
第-------3-------次
第1轮
》4  》24  》1  》3  》63  》15
第-------4-------次
第1轮
》4  》24  》1  》3  》15  》63
第2轮
》4  》24  》1  》3  》15  》63
第-------1-------次
第2轮
》4  》1  》24  》3  》15  》63
第-------2-------次
第2轮
》4  》1  》3  》24  》15  》63
第-------3-------次
第2轮
》4  》1  》3  》15  》24  》63
第-------0-------次
第3轮
》1  》4  》3  》15  》24  》63
第-------1-------次
第3轮
》1  》3  》4  》15  》24  》63
第3轮
》1  》3  》4  》15  》24  》63
第4轮
》1  》3  》4  》15  》24  》63
第4轮
》1  》3  》4  》15  》24  》63
第5轮
》1  》3  》4  》15  》24  》63
》1  》3  》4  》15  》24  》63

/*直接选择排序:指定排序位置与其他元素比较。交换次数减少。*/

public class SelectSort {
    public void sort(int[] array) {
        int index;
        for (int i = 1; i < array.length; i++) {
            index = 0;
            for (int j = 1; j <= array.length - i; j++)
                if (array[j] > array[index]) {
                    index = j;
                }
            //交换位置array.length-i和index(最大值)上的两个数
            int temp = array[array.length-i];
            array[array.length - i] = array[index];
            array[index] = temp;
        }
        showArray(array);
    }
    /*
    显示数组
     */
    public void showArray(int[] array) {
        for (int i : array) {//遍历数组
            System.out.print("  》" + i);
        }
        System.out.println();
    }
    public static void main(String[] args) {
        //创建一个数组,这个数组元素是乱序的
        int[] array = {63, 4, 24, 1, 3, 15};
        System.out.println("数组长度:" + array.length);
        System.out.println("=========================");
        //创建冒泡排序类对象
        SelectSort sorter = new SelectSort();
        //调用排序方法将数组排序
        sorter.sort(array);
    }
}

运行结果:

数组长度:6
=========================
》1  》3  》4  》15  》24  》63

到此这篇关于Java之Algorithm_analysis案例详解的文章就介绍到这了,更多相关Java之Algorithm_analysis内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java中@Autowired与@Resource注解的区别详解

    Java中@Autowired与@Resource注解的区别详解

    这篇文章主要介绍了Java中@Autowired与@Resource注解的区别详解,@Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource默认按 byName自动注入罢了,@Resource有两个属性是比较重要的,需要的朋友可以参考下
    2023-11-11
  • IntelliJ IDEA 2021.3 正式发布之支持远程开发、IDE故障排查等多项优化改进

    IntelliJ IDEA 2021.3 正式发布之支持远程开发、IDE故障排查等多项优化改进

    IntelliJ IDEA 2021.3 正式发布:支持远程开发、IDE故障排查等多项优化改进问题,在这个版本中的远程开发还不是一个正式版本,而是BETA版,但通过这个BETA版本,也可以体验IDEA“远程开发”给我们带来的全新体验
    2021-12-12
  • Java为什么匿名内部类参数引用需要用final进行修饰?

    Java为什么匿名内部类参数引用需要用final进行修饰?

    今天小编就为大家分享一篇关于Java为什么匿名内部类参数引用需要用final进行修饰?,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • Java的基础语法学习笔记

    Java的基础语法学习笔记

    这里为大家整理了Java的基础语法学习笔记,包括关键词、运算符与基本的流程控制语句写法等,需要的朋友可以参考下
    2016-05-05
  • 解决springboot druid数据库连接池连接失败后一直重连问题

    解决springboot druid数据库连接池连接失败后一直重连问题

    这篇文章主要介绍了解决springboot druid数据库连接池连接失败后一直重连问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • SpringBoot集成Druid监控慢SQL的详细过程

    SpringBoot集成Druid监控慢SQL的详细过程

    数据库连接池是一个至关重要的组成部分,一个优秀的数据库连接池可以显著提高应用程序的性能和可伸缩性,常见的连接池:Druid、HikariCP、C3P0、DBCP等等,本文将详细介绍如何在Spring Boot项目中配置数据源,集成Druid连接池,以实现更高效的数据库连接管理
    2024-06-06
  • java常用数据流应用实例解析

    java常用数据流应用实例解析

    这篇文章主要介绍了java常用数据流应用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • Java中Object类的理解和使用

    Java中Object类的理解和使用

    Object类是java.lang包下的核心类,Object类是所有类的父类,何一个类时候如果没有明确的继承一个父类的话,那么它就是Object的子类,本文将通过代码示例详细介绍一下Java中Object类的理解和使用,需要的朋友可以参考下
    2023-06-06
  • Java MyBatis实战之QueryWrapper中and和or拼接技巧大全

    Java MyBatis实战之QueryWrapper中and和or拼接技巧大全

    在Java中QueryWrapper是MyBatis-Plus框架中的一个查询构造器,它提供了丰富的查询方法,其中包括and和or方法,可以用于构建复杂的查询条件,这篇文章主要给大家介绍了关于Java MyBatis实战之QueryWrapper中and和or拼接技巧的相关资料,需要的朋友可以参考下
    2024-07-07
  • springboot2如何禁用自带tomcat的session功能

    springboot2如何禁用自带tomcat的session功能

    这篇文章主要介绍了springboot2如何禁用自带tomcat的session功能,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11

最新评论