注意,你這個不是冒泡排序,是選擇排序哦,第一個for的i = 0是數組的第1個元素,而第二個for是用來表示從比i大1的位置開始循環。來把剩下的元素與i進行比較,當找到就進行交換,循環結束就讓i加一,然后j仍然比i大一,第二個那里不是i,是len--;
<script>
????????????function?bubbleSort(arr){
????????????????var?len?=?arr.length,j;
????????????????while(len>0){
????????????????????for?(var?j?=?0;j?<?len?-?1;j++)?{
????????????????????????if(arr[j]?>?arr[j+1]){
????????????????????????????var?temp?=?arr[j];
????????????????????????????arr[j]?=?arr[j+1];
????????????????????????????arr[j+1]?=?temp;
????????????????????????}
????????????????????}
????????????????????len--;
????????????????}
????????????????return?arr;
????????????}
????????????arr1?=?[4,6,1,5,8,7,9,2];
????????????console.log(bubbleSort(arr1))
<script>
???function?bubbleSort(arr){
???????var?len?=?arr.length;
???????for(var?i?=?0;?i?<?len;i++?){
???????????for(var?j?=?0;?j?<?len?-?i?-?1;j++){
???????????????if(arr[j]?>?arr[j+1]){
???????????????????var?temp?=?arr[j];
???????????????????arr[j]?=?arr[j+1];
???????????????????arr[j+1]?=?temp;
???????????????}
???????????}
???????}
???????return?arr;
???}
????var?array?=?[10,9,8,7,6,5,4,3,2,1];
????console.log(bubbleSort(array));/*每一次外層循環把當前數列中最大值排到最后,
????并減少數組長度,就不再遍歷最后的最大,每內層循環一遍就會找出一個當前數列最大的值*/
這才是冒泡排序