排序算法(二) 冒泡排序
来源:互联网 发布:岗位优化人员优化方案 编辑:程序博客网 时间:2024/05/21 21:48
package study;public class SortNumberTest { public static void main(String[] args) { Test1(); } public static void Test1(){ System.out.println("冒泡排序"); int[] numbers={7,6,5,8,1,3,8,4,2,9}; bubbleSort(numbers); System.out.println("..................................."); System.out.println("冒泡排序优化"); int[] numbers2={7,6,5,8,1,3,8,4,2,9}; bubbleSort3(numbers2); System.out.println("..................................."); } //冒泡排序 public static void bubbleSort(int[] numbers) { print(numbers); for (int i = 0; i < numbers.length -1; i++){ //最多做length-1趟排序 for(int j = 0 ;j < numbers.length - i - 1; j++){ //对当前无序区间numbers[0......length-i-1]进行排序(j的范围很关键,这个范围是在逐步缩小的) if(numbers[j] < numbers[j + 1]){ //把小的值交换到后面 swap(numbers,j,j+1); print(numbers); } } } } //冒泡排序优化:排序次数不一定非要n-1次,排完即终止 public static void bubbleSort3(int[] numbers){ print(numbers); boolean flag = true; int n = numbers.length; while(flag){ flag = false; for(int j=0;j<n-1;j++){ if(numbers[j] <numbers[j+1]){ swap(numbers,j,j+1); print(numbers); //设置标志位 flag = true; } } n--; } } private static void swap(int[] numbers, int a, int b) { int t = numbers[a]; numbers[a] = numbers[b]; numbers[b] = t; } private static void print(int[] numbers){ for (int i = 0; i < numbers.length; i++) { System.out.print(numbers[i]+" "); } System.out.println(); } }
0 0
- 算法(二)冒泡排序
- 排序算法(二):冒泡排序
- 排序算法(二)冒泡排序
- <算法>排序(二)冒泡排序
- 排序算法(二)冒泡排序
- 排序算法(二) 冒泡排序
- 排序算法(二)鸡尾酒排序算法(双向冒泡)
- 【算法】排序算法(二)——冒泡排序
- 排序:冒泡排序(算法)
- 复习数据结构:排序算法(二)——冒泡排序
- 数据结构之排序算法(二)-冒泡排序及改进
- 排序算法(二)——冒泡排序法
- 排序算法(二)-冒泡排序(Bubble Sort)
- 排序算法(二) —— 冒泡排序
- 排序算法之二 冒泡排序
- 常见排序算法 (二)-冒泡排序
- 排序算法之二---冒泡排序
- 排序算法之二----冒泡排序
- opencv2学习(五)——reshape函数的使用
- 理解函数参数
- centos
- ubuntu 安装eclipse
- 设计模式-----工厂模式
- 排序算法(二) 冒泡排序
- 一般现在常见的网站攻击方式 及预防
- 使用Java原生API编写发送HTTP_POST请求的工具类
- Android greenDAO3x数据库框架使用小结
- 六、python笔记之常用操作符
- Linux系统不能读取NTFS格式磁盘的解决方案
- 空指针和未初始化的指针的区别
- js正则表达式例子
- spring boot 不使用parent