冒泡排序的两种Java实现方法。
方法一:
?
public void bubbleSort(int[] array) {
int length = array.length - 1;
for(int i = length; i > 0; i--) {
for(int j = 0; j < i; j++) {
if(array[j] > array[j+1]) {
swap(array, j, j+1);
}
}
}
}
private void swap(int[] array, int aIndex, int bIndex) {
int temp = array[aIndex];
array[aIndex] = array[bIndex];
array[bIndex] = temp;
}
?方法二:
public void bubbleSort(int[] array) {
int length = array.length - 1;
for(int i = 0; i < length; i++) {
for(int j = i + 1; j <= length; j++) {
if(array[i] > array[j]) {
swap(array, i, j);
}
}
}
}
private void swap(int[] array, int aIndex, int bIndex) {
int temp = array[aIndex];
array[aIndex] = array[bIndex];
array[bIndex] = temp;
}
?
冒泡排序的时间复杂度是O(n^2),空间复杂度是O(1)。
?
?
原文:http://dujian-gu.iteye.com/blog/2235104