冒泡排序(Bubble Sort)
冒泡排序是一种简单的排序算法。它适合小规模数据的排序,并且其效率比较低,入门级算法。
基本思想
冒泡排序,类似于水中冒泡,较大的数沉下去,较小的数慢慢冒起来,假设从小到大,即为较大的数慢慢往后排,较小的数慢慢往前排。
算法描述
第二趟将第二大的数移动至倒数第二位
......
因此需要n-1趟;
public void BubbleSort(int[] arr){ for(int i=0;i<arr.length-1;i++){ for(int j=0;j<arr.length-1-i;j++){ if(arr[j]>arr[j+1]){ //相邻两个元素作比较,如果前面元素大于后面,进行交换 int temp = arr[j+1]; arr[j+1] = arr[j]; arr[j] = temp; } } } }
冒泡排序复杂度分析
分析一下它的时间复杂度。当最好的情况,也就是要排序的表本身就是有序的,那么我们比较次数,那么可以判断出就是n-1次的比较,没有数据交换,此时时间复杂度为O(n)。
当最坏的情况,即待排序是逆序的情况,此时需要比较
次,此时时间复杂度为
。
原文:https://www.cnblogs.com/ityangshuai/p/12452537.html