1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| let arr = [49, 38, 65, 97, 76, 13, 27, 49]; console.log('arr:' + arr); bubbleSort(arr); console.log('sortArr:' + arr); function (arr) { for (i = 0; i < arr.length - 1; i++) { for (j = 0; j < arr.length - i - 1; j++) { if (arr[j] > arr[j + 1]) { let temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } console.log('newArr:' + arr); } }
|
加入flag
,没有进行过交换,则不再进行多余地排序。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| let arr = [49, 38, 65, 97, 76, 13, 27, 49]; console.log('arr:' + arr); bubbleSort(arr); console.log('sortArr:' + arr); function bubbleSort(arr) { let flag = 1; for (i = 0; i < arr.length - 1; i++) { flag = 0; for (j = 0; j < arr.length - i - 1; j++) { if (arr[j] > arr[j + 1]) { let temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; flag = 1; } } console.log('newArr:' + arr); if (flag == 0) break; } }
|