/** * @brief - sort an array by bubble sort * @param[in, out] array - pointer of the array [not null] * @param[in] size - size of the array [>0] * @retval 0 - succeed * @retval -1 - fail */ int bubble_sort(int *array, int size) { if ((NULL == array) || (size < 1)) { return -1; } if (1 == size) { return 0; } int i = 0; int j = 0; int tmp = 0; // 須要進行size-1趟排序 // 第一趟須要比較到size -2這個索引位置(即size-2與size-1兩個位置比較) // 最後一趟須要比較到0索引位置(即0與1兩個位置比較) for (i = size - 2; i >= 0; --i) { for (j = 0; j <= i; ++j) { // 大的日後冒泡 if (array[j] > array[j + 1]) { tmp = array[j]; array[j] = array[j + 1]; array[j + 1] = tmp; } } } return 0; }