package test;
/**
* 冒泡排序:
* 1、思想:不断比较相邻的两个数,让较大的元素不断地往后移。经过一轮比较,就选出最大的数;经过第2轮比较,就选出次大的数,以此类推。
* 2、时间复杂度:O(n^2)
*
* @author liyulin
* @version 1.0 2013-10-17 上午11:35:16
*/
public class BubbleSort {
/**
* 冒泡排序
*
* @param arr 待排序的数
* @return int[]
*/
public static int[] bubbleSort(int[] arr) {
int size = arr.length;
for (int i = 0; i < size - 1; i++) {
boolean isSorted = true;
for (int j = 0; j < size - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
isSorted = false;
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
// 如果没有发生交换,说明数组已经排序好了
if(isSorted){
break;
}
}
return arr;
}
public static void main(String[] args) {
int[] data = {1,2,1,4,5,7,8,2,6,2,6,7,3,4};
data = BubbleSort.bubbleSort(data);
for (int i = 0; i < data.length; i++) {
System.out.print(data[i] +" ");
}
}
}
冒泡排序
最新推荐文章于 2025-05-19 09:28:05 发布