java算法冒泡排序

简介: java算法冒泡排序

简介


冒泡排序是将一个数组里面的数据,安装由小到大的数据排序,就像水的冒泡一样,气泡大的在上面,所以定义为冒泡排序.


原理


用第一个数据,依次去跟第二个,第三个数据进行比较,一直到最后.如果该数值大于要比较的值,则进行换位,然后拿换位后的数据接着去比较.第一轮比较结束,然后开始第二轮比较,第二轮比较从还是从第一个开始,但是只需要比较到倒数第二位即可,因为第一轮的比较一定是最大的在后面.依次重复比较,直到全部比较完成.


复杂度


冒泡排序法的时间复杂度为O(n2) ,空间复杂度为O(1).


核心代码实现

        int tmp;  
        for (int i = 0; i < arr.length; i++) {  
            for (int j = i; j < array.length-1-i; j++) {
                if(array[j] > array[j+1]){
                    int tmp;
                    tmp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = tmp;
                }
        }

我们首先定义一个临时数据,进行数据的交换,两个数值互换是需要借助第三个变量的.开始循环进行两个数值的大小比对,写一个for循环,起始角标为0,结束角标为数据的最后一个角标.接着再写一个for循环,比较的时候从第二个位置开始比较,如果第一个数值大于第二个数值,则进行数值互换. 数值互换技巧,首先将数值大的  array[j] 赋值给临时变量tmp,然后将 小的数值 arr[j+1] 的值赋给变量 array[j] ,接着将临时变量的值赋给 array[j+1] ,这样就直实现了变量互换. 然后往下比较,一直比较到最后,第一轮比较完成,最大的值已经在最后一位.第二轮比较开始,从第一位开始,这次比较到倒数第二位即可.依次比较,执行完以后,即可输出最终结果.

相关文章
|
6天前
|
算法 安全 Java
性能工具之 JMeter 自定义 Java Sampler 支持国密 SM2 算法
【4月更文挑战第28天】性能工具之 JMeter 自定义 Java Sampler 支持国密 SM2 算法
36 1
性能工具之 JMeter 自定义 Java Sampler 支持国密 SM2 算法
|
5天前
|
缓存 算法 Java
数据结构~缓存淘汰算法--LRU算法(Java的俩种实现方式,万字解析
数据结构~缓存淘汰算法--LRU算法(Java的俩种实现方式,万字解析
|
5天前
|
NoSQL 算法 Java
【redis源码学习】持久化机制,java程序员面试算法宝典pdf
【redis源码学习】持久化机制,java程序员面试算法宝典pdf
|
6天前
|
搜索推荐 算法 Java
sort-01-bubble sort 冒泡排序算法详解
这是一个关于排序算法的系列文章摘要。作者整理了10种不同的排序算法,包括冒泡排序、快速排序、选择排序、堆排序、插入排序、希尔排序、归并排序、计数排序、桶排序和大文件外部排序。文章详细介绍了冒泡排序的工作原理、流程,并提供了代码实现,强调了在实现中考虑的改进点,如统一接口、实用性增强和日志输出。此外,还提供了一个排序接口和工具类以方便使用,并通过测试代码和日志展示了排序过程。整个系列旨在帮助读者理解和掌握排序算法。相关代码已开源在GitHub。
|
6天前
|
存储 算法 Java
wtf?java的冒泡排序还可以这样写
wtf?java的冒泡排序还可以这样写
9 1
|
6天前
|
设计模式 算法 Java
[设计模式Java实现附plantuml源码~行为型]定义算法的框架——模板方法模式
[设计模式Java实现附plantuml源码~行为型]定义算法的框架——模板方法模式
|
6天前
|
搜索推荐 算法 Java
Java实现的常用八种排序算法
提到数据结构与算法,无法避免的一点就包含排序,熟练的掌握各种排序算法则是一个程序员必备的素质之一,除此之外,排序算法也是当下各大技术公司比较喜欢问的技术点,所以,就这一点JavaBuild整理了常见的8种排序算法
13 0
|
6天前
|
机器学习/深度学习 数据采集 算法
使用 Java 实现机器学习算法
【4月更文挑战第19天】Java在数据驱动时代为机器学习提供支持,具备丰富的数学和数据结构库,适用于实现线性回归、决策树、SVM和随机森林等算法。实现时注意数据预处理、模型选择、评估指标和可视化。利用Java的库和编程能力可构建高效模型,但需按问题需求选择合适技术和优化方法。
|
6天前
|
存储 算法 搜索推荐
【数据结构与算法】归并排序(详解:递归与非递归的归并排序 | 赠:冒泡排序和选择排序)
【数据结构与算法】归并排序(详解:递归与非递归的归并排序 | 赠:冒泡排序和选择排序)
|
6天前
|
算法 安全 Java
java代码 实现AES_CMAC 算法测试
该代码实现了一个AES-CMAC算法的简单测试,使用Bouncy Castle作为安全提供者。静态变量K定义了固定密钥。`Aes_Cmac`函数接受密钥和消息,返回AES-CMAC生成的MAC值。在`main`方法中,程序对给定的消息进行AES-CMAC加密,然后模拟接收ECU的加密结果并进行比较。如果两者匹配,输出&quot;验证成功&quot;,否则输出&quot;验证失败&quot;。辅助方法包括将字节转为16进制字符串和将16进制字符串转为字节。