冒泡排序
Posted lynnmin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒泡排序相关的知识,希望对你有一定的参考价值。
package demo;
/**
* 冒泡排序及其优化;
*
* @author Lynn
*
*/
public class BubbleSort {
public static void main(String[] args) {
int[] arr = {10,9,8,7,6,5,4,3,2,1};
int[] arr1 = {1,2,3,4,5,6,7,8,9,10};
int[] arr2 = {1,2,3,4,5,6,7,8,9,10};
sort2(arr); //使用二种方法;
printArr(arr);
sort1(arr1);
sort2(arr2);
printArr(arr1);
printArr(arr2);
}
/**
* 常规排序(下沉);
*
* @param arr
* @return
*/
private static void sort1(int[] arr) {
int count = 0;
for (int i = 0; i < arr.length; i++) {
count++;
for (int j = 0; j + 1 < arr.length - i; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = temp;
}
}
}
System.out.println("调用sort1:"+count);
}
/**
* 优化
*
* @param arr
*/
public static void sort2(int[] arr) {
int count = 0;
boolean flag = true;// 是否存在交换;
for (int i = 0; i < arr.length && flag; i++) {
count++;
flag = false;// 初始化为false;
for (int j = 0; j + 1 < arr.length - i; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = temp;
flag = true;//出现了交换;
}
}
}
System.out.println("调用sort2:"+count);
}
private static void printArr(int[] arr) {
for(int i:arr) {
System.out.print(i+" ");
}
System.out.println();
}
}
运行结果
以上是关于冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章