栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

零基础java自学流程-认识Java基础语法17

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

零基础java自学流程-认识Java基础语法17

Java实现冒泡排序

一、冒泡排序:

使用冒泡排序对数组进行排序

二、基本概念

依次比较两个相邻的数,把小数点放在前面,大数放在后面。也就是说,在第一次运行中:首先比较第一个和第二个数字,把小数点放在前面,大数字放在最后。然后比较第二个和第三个数,小数点放在前面,大数放在后面,以此类推,直到比较最后两个数,小数点放在前面,大数放在后面。第一次算完了,把最大的放在最后。在第二次旅行中:再一次,我们从第一个开始对数(因为也许第二个和第三个数字是交换,这样第一个数字不再是小于第二个数字),我们把前面的小数更大的数字,我们继续与第二数量(这已经是最大的号码最后一位),在第二次运行结束时,在倒数第二个位置获取一个新的最大数字(实际上是整个序列中的第二大数字)。重复这个过程,直到完成排序。

三、实现思路:

它是通过一个双循环实现的,外部循环变量设为I,内部循环变量设为j。如果有n个数字需要排序,那么外部循环重复n-1次,内部循环重复n-1, n-2,…1次。每次比较的两个元素都与内循环J相关,分别用a[J]和a[J +1]来识别。I的值是1,2…,n-1,对于每个I, j值是0,1,2,…N - I。

设数组长度为N:

1. 比较两个相邻的数据,如果第一个数据大于下一个数据,两个数据交换。

2. 从0到n-1遍历数组后,最大的数据“下沉”到n-1位置。

3.N= N -1,如果N不为0,重复前两步,否则完成排序。

四、Java代码实现:
package 冒泡排序;

import java.util.Arrays;

public class BubbleSort {
    public static void BubbleSort(int[] arr) {
        int temp;//定义一个临时变量
        for(int i=0;i
五、性能分析:

如果记录序列的初始状态是“正序”,则冒泡排序过程只需要排序一次,排序过程中只需要n-1次比较,不需要移动记录。相反,如果记录序列的初始状态是“向后”的,则需要n(n-1) /2个比较和记录移动。所以冒泡排序的总时间是O(n * n)

六、算法优化:

气泡分选法的缺点及改进方法:

首先,在分类的过程中,最终排序后,尽管所有的数据已经完成,但无法确定完成订单,为了解决短缺,可以设置一个标志,象征着初始值设置为0,表示排序表是一个无序列表,在每个排序值开始之前设置的标记都是0,在数据交换期间,将更改为非零。在新一轮排序的开始,检查这个标志。如果该标志为0,表示上次没有交换数据,排序结束。否则排序;

package 冒泡排序;
import java.util.Arrays;

public class BubbleSort1 {
    public static void BubbleSort(int[] arr) {
        boolean flag = true;
        while(flag){
            int temp;//定义一个临时变量
            for(int i=0;i

第二,在冒泡排序中,在一次扫描中可能没有数据交换,或者可能有一个或多个数据交换。在传统的冒泡排序算法和近年来的一些改进算法中,只记录一次扫描中数据交换的信息,而没有处理数据交换的位置信息。为了充分利用这一信息,可以对全局扫描中的每个数据对进行局部冒泡排序,称为局部冒泡排序。局部冒泡排序与冒泡排序算法具有相同的时间复杂度,在正向和反向排序的情况下,所需关键字的比较次数和移动次数完全相同。由于本地冒泡排序和冒泡排序的数据移动号码总是相同的,而且本地冒泡排序所需的关键字频率往往小于冒泡排序,这就意味着本地冒泡排序很可能比冒泡排序的改进平均,当数据量较大时,局部冒泡排序的时间性能要优于冒泡排序。N无序的数据,如果k和k + 1数据在相反的顺序在冒泡排序,k + 1数据将进行冒泡排序将它移动到合适的位置,也就是说,之前的k + 1数据将进行调整,以积极的秩序。因为这个冒泡方法只处理第一个K +1个冒泡数据,我们称之为局部冒泡


想要系统学习JAVA推荐JAVA300集

Java300集零基础适合初学者视频教程https://www.bilibili.com/video/BV1oy4y1H7R6?spm_id_from=333.999.0.0https://www.bilibili.com/video/BV1oy4y1H7R6?spm_id_from=333.999.0.0

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/282742.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号