您的位置:首页 > 编程语言 > Java开发

冒泡排序java

2016-06-30 07:48 309 查看
package com.sort;

public class BubbleSortTest {

public static void main(String[] args) {
// TODO Auto-generated method stub
int[] unsort = new int[] {49, 38, 65, 97, 13, 27, 76, 49};
for(int i = 0 ; i < unsort.length; i++) {
System.out.print(unsort[i] + "    ");
}
System.out.println("\n********************************************");
bubbleSort(unsort);
for(int i = 0 ; i < unsort.length; i++) {
System.out.print(unsort[i] + "    ");
}

}

/*
* 每次比较相邻两个数的大小,array[j]大于array[j + 1]的话则交换两个数
* 每一轮都会找到最大的一个数,放在最后
* 由于是相邻两个数的比较,不会改变值相同元素的相对位置,因此,冒泡排序是一种稳定排序法
* */
public static void bubbleSort(int[] array) {
boolean flag = true;//flag用来记录是否有交换动作,没有的话则表示已经是有序数组,直接退出
for (int i = 0; flag && i < array.length; i++) {
flag = false;//每次比较前将flag置为false,即没有交换动作
for (int j = 0; j < array.length - i - 1; j++) {
if (array[j] > array[j + 1]) {
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
flag = true;//有交换动作
}
}

4000
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: