冒泡排序法,递归,JAVA版

来源:互联网 发布:博士后出站 知乎 编辑:程序博客网 时间:2024/04/19 02:55
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);}}}