思路:
冒泡排序每次都比较相邻的两个元素,如果前者比后者大,则进行交换。直至遍历完所有元素,没有元素可以交换。
原始数组: 4 7 9 3 5
内层第一次迭代 : 4 7 3 5 9
内层第二次迭代 : 4 3 5 7 9
内层第三次迭代 : 3 4 5 7 9
内层第四次迭代 : 3 4 5 7 9
template< class T > void bubbleSort(T data[], int iLenght) { for (int i = 0; i < iLength - 1; i++) //因为每次迭代都会和下一个元素进行比较,所以最大迭代次数要减1。 { for (int j = 0; i < iLenght - i - 1; j++) //外层迭代一次就会把一个极值偏移到一边,所以内层迭代次数也会减小。 { if ( data[j] > data[j+1]) { swap(data[j], data[j +1]); } } } }