3 回答

TA貢獻9條經(jīng)驗 獲得超1個贊
第一重循環(huán)(第一個for)是為了找到第i小的數(shù),比如當(dāng)i=0時,找的是第一小的數(shù),放在數(shù)組最前面,當(dāng)i=1時,找除了arr[0]的最小的數(shù)也就是第二小的數(shù),以此類推。第二重循環(huán)(第二個for)是為了遍歷數(shù)組-i個數(shù),依次和他們比,比誰更小,最小的放到i這個位置。
第二個
?我改了一下,可以這么寫“var len = arr.length,j,temp;”這個是冒泡排序,每次最外面的循環(huán)一次,就會把數(shù)組中最大數(shù)排到最后
??function?bubbleSort(arr){ ????var?len?=?arr.length,j,temp; ????var?i=len; ????while(i>0){ ????????for(?j?=?0;?j?<?len?-?1;j++){ ????????????if(arr[j]?>?arr[j+1]){ ????????????????temp?=?arr[j]; ????????????????arr[j]?=?arr[j+1]; ????????????????arr[j+1]?=?temp; ????????????} ????????} ????i--; ????} ????return?arr; }

TA貢獻376條經(jīng)驗 獲得超318個贊
注意,你這個不是冒泡排序,是選擇排序哦,第一個for的i = 0是數(shù)組的第1個元素,而第二個for是用來表示從比i大1的位置開始循環(huán)。來把剩下的元素與i進行比較,當(dāng)找到就進行交換,循環(huán)結(jié)束就讓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));/*每一次外層循環(huán)把當(dāng)前數(shù)列中最大值排到最后, ????并減少數(shù)組長度,就不再遍歷最后的最大,每內(nèi)層循環(huán)一遍就會找出一個當(dāng)前數(shù)列最大的值*/
這才是冒泡排序

TA貢獻3593條經(jīng)驗 獲得超0個贊

TA貢獻5條經(jīng)驗 獲得超2個贊
二次因為你每次從數(shù)組中取一個數(shù)(一次FOR,遍歷全數(shù)組-1各數(shù)),和數(shù)組中剩下的數(shù)比(二次FOR,遍歷全數(shù)組減去第一個FOR中已經(jīng)比較過的數(shù))。 第二個有錯,別看了
添加回答
舉報