package com.colin;
/**
*
* @author Colin Yan
*
*/
public class BubbleSort {
/** 时间复杂度 */
private static int timeComplexity;
public static final int INDEX_BEGIN = 0;
/**
*
* @param arr
* @param index
* [0, arr.length-2]
*/
public static void sort(int arr[], int index) {
System.out.println("index:" + index);
for (int i = arr.length - 1; i > index; i--) {
timeComplexity++;
if (arr[i] < arr[i - 1]) {
arr[i] ^= arr[i - 1];
arr[i - 1] ^= arr[i];
arr[i] ^= arr[i - 1];
}
}
if (index < arr.length - 2) {
sort(arr, ++index);
}
}
private static int calcByFormula(int n) {
return (n - 1) * (n) / 2;
}
public static void main(String[] args) {
int arr[] = new int[] { 3333, 1, 2, 34, 2, 67, 889, 56 };
sort(arr, INDEX_BEGIN);
System.out.println("排序数组长度n为:" + arr.length);
System.out.println("公式计算时间复杂度:" + calcByFormula(arr.length));
System.out.println("实际计算时间复杂度:" + timeComplexity);
for (int i : arr) {
System.out.println(i);
}
}
}
冒泡排序法,递归,JAVA版
最新推荐文章于 2023-03-28 21:50:57 发布