什么是冒泡排序?手写一段冒泡排序的代码
(1)要求。能够用自己语言描述冒泡排序算法
(2)算法描述。依次比较数组中相邻两个元素大小,若 a[j] > a[j+1],则交换两个元素,两两都比较一遍称为一轮冒泡,结果是让最大的元素排至最后 重复以上步骤,直到整个数组有序
(3)算法实现。实现冒泡程序的代码如下:
(4)进一步优化。public static void bubble_v2 ( int [ ] a ) { int n = a . length - 1 ; while ( true ) { int last = 0 ; // 表示最后一次交换索引位置 for ( int i = 0 ; i < n ; i ++ ) { System . out . println ( "比较次数" + i ) ; if ( a [ i ] > a [ i + 1 ] ) { Utils . swap ( a , i , i + 1 ) ; last = i ; } } n = last ; System . out . println ( "第轮冒泡" + Arrays . toString ( a ) ) ; if ( n == 0 ) { break ; } } }