java写一个冒泡排序_冒泡排序 一个java例程

java写一个冒泡排序_冒泡排序 一个java例程冒泡排序的算法的思想其实很简单就是逐个比较交换位次从而实现一个完整的排序,下面直接看代码吧。packagealgorithm;importjava.text.SimpleDateFormat;importjava.util.Date;/**时间:2019822*作者:latefly*功能:一个冒泡排序的展示,包含一个原始的方法以及一个优化以后的方法****/publicclass…

大家好,又见面了,我是你们的朋友全栈君。

冒泡排序的算法的思想其实很简单就是逐个比较交换位次从而实现一个完整的排序,下面直接看代码吧。

package algorithm;

import java.text.SimpleDateFormat;

import java.util.Date;

/*

* 时间:2019 8 22

* 作者:latefly

* 功能:一个冒泡排序的展示,包含一个原始的方法以及一个优化以后的方法

*

*

**/

public class BubleSort {

static int counter = 0;

static int arrSize = 80000;// 此处实测大概是19-22之间

public static void main(String args[]) {

int arr[] = new int[arrSize];

for (int i = 0; i < arrSize; i++) {

arr[i] = (int) (Math.random() * 8000000);

}

// baseSort(arr);

Date dateStart = new Date();

SimpleDateFormat format = new SimpleDateFormat(“YYYY-MM-DD hh:mm:ss”);

String start = format.format(dateStart);

System.out.println(“开始时间:” + start);

// 开始排序

rectifySort(arr);

Date endStart = new Date();

String end = format.format(endStart);

System.out.println(“结束时间:” + end);

// System.out.println(Arrays.toString(arr));

}

// 一个基本的展示冒泡排序

public static void baseSort(int arr[]) {

int i, j, temp;

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

for (j = 0; j < arr.length – 1; j++) {

if (arr[j] > arr[j + 1]) {

temp = arr[j + 1];

arr[j + 1] = arr[j];

arr[j] = temp;

counter++;

}

}

}

}

// 此处的排序是经过优化的,change用于判断每一轮是否有交换发生

// 如果没有那么就是排序已经完成

public static void rectifySort(int arr[]) {

int i, j, temp;

boolean change = true;

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

change=true;

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

if (arr[j] > arr[j + 1]) {

temp = arr[j + 1];

arr[j + 1] = arr[j];

arr[j] = temp;

counter++;

change = false;

}

}

if (change)

break;

}

}

}

这是十个数据的测试

d22ae9d2afde351478b7dfc58136e1ab.png

这是80000个随机数据的一个测试可以看到用了19s(非精确时间)

c86ad8b782ebe3aa552122237a49e267.png

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/156337.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • datatrip 激活码[在线序列号][通俗易懂]

    datatrip 激活码[在线序列号],https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    44
  • sfdwfwefw

    sfdwfwefw

    2021年12月17日
    36
  • 鸿蒙3部曲先看哪部,星辰变是“鸿蒙”系列的作品,那“鸿蒙”系列到底有多少部曲?…

    鸿蒙3部曲先看哪部,星辰变是“鸿蒙”系列的作品,那“鸿蒙”系列到底有多少部曲?…说到《星辰变》,相信很多人都知道他的作者就是番茄吧?而番茄笔下最出名系列的小说,无疑就是“鸿蒙”系列了,其中《星辰变》就是“鸿蒙”系列中的一部作品。那“鸿蒙”系列小说到底有多少部曲呢?对此也有很多人有了这个疑问。原先的“鸿蒙三部曲”相信很多熟悉番茄小说的朋友都知道,原本番茄的《盘龙》《星辰变》《吞噬星空》被很多粉丝称之为“鸿蒙三部曲”。因为在《星辰变》的结局中我们也知道,鸿蒙创立了三个不同的世界,…

    2022年6月15日
    146
  • python画心形代码大全_七夕,程序员的表白代码「建议收藏」

    python画心形代码大全_七夕,程序员的表白代码「建议收藏」七夕快到了,表白素材赶紧先准备好。。。0、委婉的表白Python代码:importstringl=string.ascii_letterss=[]s.append(l[34])s.append(l[11])s.append(l[14])s.append(l[21])s.append(l[4])s.append(l[24])s.append(l[14])s.append(l[20])s….

    2022年5月6日
    153
  • azkaban配置依赖_azkaban安装

    azkaban配置依赖_azkaban安装1.下载Azkaban1.1登陆Azkaban的官网:https://azkaban.github.io/点击Downloads,如图示:1.2点击之后,在跳转的页面中选择Releases,进入页面选择相应的版本下载,这里选择的版本是3.70.0版本,点击“Sourcecode(tar.gz)”下载。1.3选择自己要下载的源码,下载2.环境准备2.1在安装之前要安装jdk,…

    2025年7月7日
    2
  • python中random函数及用法

    python中random函数及用法1、python中的random函数random()方法返回随机生成的一个实数,它在[0,1)范围内importrandomrandom.random()#randint函数,返回指定范围的一个随机整数,包含上下限random.randint(0,99)#返回0~99之间的整数#randrange函数,randrange(0,101,2)可以用来选曲0~100之间的偶数2、…

    2022年6月9日
    32

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号