用Java进行冒泡排序的代码,利用一个flag进行优化算法:

 import java.util.Scanner;

 public class Bubble_Sort {
private static int array[] = new int[1000]; private static void setArray(int length) {
// get length and to create array
Scanner scanner = new Scanner(System.in);
System.out.println("Please entry num:");
for (int i = 0; i < length; i++) {
int num = scanner.nextInt();
array[i] = num;
}
} private static void showArray(int length){
// show this array
for (int i = 0; i < length; i++) {
System.out.print(array[i] + " ");
}
} private static void sortArray(int length){
// 大数向下沉的方法
// 设置一个flag用于加快排序速度
int flag;
// 最大的比较次数 初始化
flag = length;
while (flag > 1){
for (int i = 0; i < flag; i++) {
// 添加一个临界值的判断 因为 当flag=i时 第i+1位的值为0 所以肯定比第i位小 所以会自己添加一个0元素
if (array[i] >= array[i+1] && array[i+1] != array[flag+1]){
int swap = array[i+1];
array[i+1] = array[i];
array[i] = swap;
}
}
// 每次循环之后减一
flag--;
// showArray(length);
}
} public static void main(String[] args){
System.out.println("Please entry a length:");
Scanner scanner = new Scanner(System.in);
int length = scanner.nextInt();
setArray(length);
sortArray(length);
showArray(length);
}
}

Bubble(冒泡排序)————Java的更多相关文章

  1. 动态演示冒泡排序java

    动态演示冒泡排序java //冒泡排序是一种简单的交换排序,基本思路,从数列左边开始扫描元素,在扫描过程中依次对相邻元素进行比较,将较大元素后移. public class NumberSort { ...

  2. 算法之冒泡排序(Java语言)

    冒泡排序(英语:Bubble Sort) 是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说 ...

  3. 基本排序算法——冒泡排序java实现

    冒泡排序是原理最简单的一种排序算法,具体思想就不多说了,代码如下: eclipse4.3中编译通过 package sort.basic; import java.util.Arrays; publi ...

  4. 冒泡排序-java

    排序-冒泡排序 基本思想:从一端开始,逐个比较相邻的两个元素,发现倒序即交换. 这里按从后往前(从下往上)逐个比较相邻元素. 平均时间:O(n2) 最好情况:O(n) 最坏情况:O(n2)(逆序) 辅 ...

  5. Java冒泡排序,Java对象冒泡排序

    今天呆公司特别无聊,百度了一下Java机试题,看到一个冒泡排序. 粘上我全部的代码: 实体类: package accp.com.internet;/** * 人物类 * @author xuxiao ...

  6. JAVA冒泡排序/JAVA冒泡排序再找出给定数据中的最大值最小值/JAVA数组排序

    //数组中排序    int in[] = {1,6,5,8,9};    Arrays.sort(in);    for(int i=0;i<in.length;i++){       Sys ...

  7. 冒泡排序java

    先对冒泡排序做一个简单的解释,然后是代码的实现.解释出资<java的数据结构和算法>,大家可以看看. 排序类: package com.dxx.order; public class Bu ...

  8. 冒泡排序----java实现

    冒泡排序思路:第1次:顺序比较从第0个到第len个(相邻两个)元素并把大的放后面,第一次进行完后,最大                                         的元素会在最后: ...

  9. 数据结构算法之冒泡排序——Java语言实现

    今天来谈下冒泡排序算法,这次实现由两种形式如下所示: 1.对于长度为N的数据序列,没有加标签限制,针对一开始就是有序的数据序列,仍然需要排序N-1趟来完成排序. 2.对于长度为N的数据序列,加标了签限 ...

随机推荐

  1. 三:python 对象类型详解一:数字(上)

    一:python 的数字类型: a)整数和浮点数 b)复数 c)固定精度的十进制数 d)有理分数 e)集合 f)布尔类型 g)无穷的整数精度 h)各种数字内置函数和模块 二:各种数字类型的详解 1,数 ...

  2. pta l3-7(天梯地图)

    题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805051153825792 题意:给定n个地点,m条边以及边的 ...

  3. 第二章 向量(a)接口与实现

  4. 忘记root密码,怎么办

    当前账户拥有sudo权限,可以通过sudo passwd root来重置root密码.

  5. minSdk(API 26) > deviceSdk(API 19)解决方式

    运行项目时出现“minSdk(API 26) > deviceSdk(API 19)”的提示,因为我用的是手机是sdk(API19)的,而项目要求是最低版本是minSdk(API 26),在我的 ...

  6. 如何彻底卸载mysql(xp)

    如何彻底卸载mysql 完整的卸载MySQL 5.x 的方法: 1.控制面板里的增加删除程序内进行删除 2.删除MySQL的安装文件夹C:\Program Files\MySQL,如果备份好,可以直接 ...

  7. Mastering Unity 2D Game Development

    Mastering Unity 2D Game Development will give your game development skills a boost and help you begi ...

  8. vue 父子组件相互传参

    转自https://blog.csdn.net/u011175079/article/details/79161029 子组件: <template> <div> <di ...

  9. day 25 udp, socketserver

    建立UDP连接的示例: # server端 import socket sk = socket.socket(type=socket.SOCK_DGRAM) sk.bind(('127.0.0.1', ...

  10. 模块math和cmath

    python使用特殊命令import导入模块,再以module.function的方式使用模块 python标准库提供了一个专门用于处理复数的模块cmath,math处理数据 模块math常用的函数有 ...