冒泡排序
上图
package com.wuzhixin.datastructrue;
import java.util.Arrays;
/**
*
* 2019/9/2-21:16
* _23designpatterns
**/
public class BubbleSort {
public static void main(String[] args) {
int arr[] = new int[]{1, 2, 7, 4, 5};
sort(arr);
System.out.println(Arrays.toString(arr));
}
public static void sort(int[] arr) {
int first, second, count = 0;
for (int j = arr.length; j > 0; j--) {
/* for (int i = 0; i < j - 1; i++) {
first = arr[i];
second = arr[i + 1]; //这里可以做优化,让内存少开辟一个空间
if (first > second) {
arr[i] = second;
arr[i + 1] = first;
} else {
count++; //用于计数,优化如果说所传的数组为已经排好了,就终止循环
}
}*/
for(int i = 0;i< j - 1 ; i++){
if(arr[i]>arr[i+1]){
int temp = arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
if (count == (arr.length - 1)) {
return;
}
count = 0;
}
}
}
时间复杂度
T(n)=O(n*n)