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中用户向系统传递参数的三种基本方式实例分享

    Java中用户向系统传递参数的三种基本方式实例分享

    这篇文章主要介绍了Java中用户向系统传递参数的三种基本方式实例,有需要的朋友可以参考一下
    2014-01-01
  • SpringAOP 设置注入的实现步骤

    SpringAOP 设置注入的实现步骤

    这篇文章主要介绍了SpringAOP 设置注入的实现步骤,帮助大家更好的理解和学习使用Spring框架,感兴趣的朋友可以了解下
    2021-05-05
  • mybatis动态sql之新增与更新方式

    mybatis动态sql之新增与更新方式

    这篇文章主要介绍了mybatis动态sql之新增与更新方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • MyBatis-Plus MetaObjectHandler的原理及使用

    MyBatis-Plus MetaObjectHandler的原理及使用

    MyBatis-Plus的MetaObjectHandler接口允许开发者自动填充实体类字段,如创建时间、更新时间等公共字段,减少代码重复,提高数据一致性和完整性,感兴趣的可以了解一下
    2024-10-10
  • Java三个类加载器及它们的相互关系

    Java三个类加载器及它们的相互关系

    Java在需要使用类别的时候,才会将类别加载,Java的类别载入是由类别载入器(Class loader)来达到的,预设上,在程序启动之后,主要会有三个类别加载器,文中详细介绍了这三个类加载器,需要的朋友可以参考下
    2021-06-06
  • Java线程的创建介绍及实现方式示例

    Java线程的创建介绍及实现方式示例

    这篇文章主要为大家介绍了Java线程的创建介绍及实现方式示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • MyBatis图文并茂讲解注解开发多对多查询

    MyBatis图文并茂讲解注解开发多对多查询

    这篇文章主要介绍了SpringBoot中Mybatis注解多对多查询的实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • Spring加载properties文件的两种方式实例详解

    Spring加载properties文件的两种方式实例详解

    这篇文章主要介绍了Spring加载properties文件的两种方式,需要的朋友可以参考下
    2018-02-02
  • Java多线程 原子操作类详细

    Java多线程 原子操作类详细

    这篇文章主要介绍了Java多线程中的原子操作类,原子的本意是不能被分割的粒子,而对于一个操作来说,如果它是不可被中断的一个或者一组操作,那么他就是原子操作。显然,原子操作是安全的,因为它不会被打断,需要的朋友可以参考下
    2021-10-10
  • 一篇文章带你入门Java数据结构

    一篇文章带你入门Java数据结构

    这篇文章主要介绍了Java常见数据结构面试题,带有答案及解释,希望对广大的程序爱好者有所帮助,同时祝大家有一个好成绩,需要的朋友可以参考下,希望可以帮助到你
    2021-08-08

最新评论