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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 一文搞懂SpringBoot自动配置原理「建议收藏」

    一文搞懂SpringBoot自动配置原理「建议收藏」阅读收获????????理解SpringBoot自动配置原理一、SpringBoot是什么SpringBoot的诞生就是为了简化Spring中繁琐的XML配置,其本质依然还是Spring框架,使用SpringBoot之后可以不使用任何XML配置来启动一个服务,使得我们在使用微服务架构时可以更加快速的建立一个应用。简单来说就是SpringBoot其实不是什么新的框架,它默认配置了很多框架的使用方式。二、SpringBoot的特点提供了固定的配置来简化配置,即约定大于配置 尽可能地

  • 安装多版本php(php5.6,php7.2)

    安装多版本php(php5.6,php7.2)安装多版本php(php5.6,php7.2)

  • oracle 创建索引的sql语句_oracle数据库创建索引语句

    oracle 创建索引的sql语句_oracle数据库创建索引语句CREATEINDEXPOLICYIMPART_INDEXONROOTE.W_POLICYIMPART(POLICYIDASC,IMPARTCODEASC,CUSTOMERTYPEASC)POLICYIMPART_INDEX索引名称ROOTE.W_POLICYIMPART表名

  • XMLDocument转为String[通俗易懂]

    XMLDocument转为String[通俗易懂]XMLDocument转为String
            staticpublicstringXmlDocumentToString(refXmlDocumentdoc)
            {
                MemoryStreamstream=newMemoryStream();
                XmlTextWriterwriter=newXmlTextWriter(stream,null);

  • mariadb安装教程linux,Linux下MariaDB10.0.X最新版本的安装方法

    mariadb安装教程linux,Linux下MariaDB10.0.X最新版本的安装方法1.Linux安装环境CentOS7-64位,目前最新版本:MariaDB10.0.142.Linux终端命令行创建文件:vim/etc/yum.repos.d/MariaDB.repo文件内容:#MariaDB10.0CentOSrepositorylist-created2014-09-2809:10UTC#http://mariadb.org/mariadb/rep…

  • chmod命令原理及用法详解[通俗易懂]

    chmod命令原理及用法详解[通俗易懂]Chmod命令主要用于修改、设置文件权限chmod修改文件权限主要有两种方式:字母法与数字法虽然数字法相对字母法简单,但是数字法是基于字母法,所以这里先介绍字母法。1、字母法:chmod (ugoa) (+-=) (rwx) (文件名)以上是chmod的用法,每个括号是一个参数,前三个括号主要放在一起使用即chmod+设置模式+文件名;下

发表回复

您的电子邮箱地址不会被公开。

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