第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

js 冒泡排序

js 冒泡排序

undertale 2017-03-23 14:19:14
第一個寫法寫了2個for ,不太好理解,請大家?guī)臀医忉屢幌拢诙€寫的對嗎?還有一些小的疑問,圖片上標(biāo)注了。
查看完整描述

3 回答

已采納
?
zzylove

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;

}
查看完整回答
反對 回復(fù) 2017-03-23
  • undertale
    undertale
    我貼的第一個代碼不是冒泡排序嗎?樓上說是選擇排序?
  • zzylove
    zzylove
    不是冒泡排序,確實是選擇。經(jīng)典的冒泡排序就是相鄰倆個數(shù)交換,你貼的一個代碼,不是相鄰的兩個數(shù)進行交換,而是每次都會和別的數(shù)比較,從中選出最小的。冒泡排序,就和字面的意思,泡泡慢慢的冒上去,通過相鄰的兩個數(shù)交換,慢慢的把最大的數(shù)頂上去。比如1,5,2,4,3,。它的變化是1,5,2,4,3->1,2,5,4,3->1,2,4,5,3->1,2,4,3,5->1,2,3,4,5。但是如果是一個方法,它的變化是這樣1,5,2,4,3->1,2,5,4,3->1,2,4,5,3->1,2,3,5,4->1,2,3,4,5 在第3次的變化中就可以發(fā)現(xiàn)是有區(qū)別的,選擇排序每一次從待排序的數(shù)中選出最?。ɑ蜃畲螅┑囊粋€元素,存放在序列的起始位置,直到全部待排序的數(shù)排完。
  • undertale
    undertale
    第一個變化順序應(yīng)該是15243-12543-12345吧?12543以后不是應(yīng)該5和3交換位置了嗎?
點擊展開后面9
?
西蘭花偉大炮

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ù)列最大的值*/

這才是冒泡排序

查看完整回答
2 反對 回復(fù) 2017-03-23
  • 西蘭花偉大炮
    西蘭花偉大炮
    因為每次循環(huán)都會找出一個最大的數(shù),也就是j循環(huán)里會減一個,也就是長度會減1,下一次就不再循環(huán)那個最大的數(shù)了
?
qq_聆愛依魂_0

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

二次因為你每次從數(shù)組中取一個數(shù)(一次FOR,遍歷全數(shù)組-1各數(shù)),和數(shù)組中剩下的數(shù)比(二次FOR,遍歷全數(shù)組減去第一個FOR中已經(jīng)比較過的數(shù))。 第二個有錯,別看了

查看完整回答
反對 回復(fù) 2017-03-23
  • undertale
    undertale
    請問第二個哪里錯了,我再博客園看到的。我自己看不出來
  • 3 回答
  • 0 關(guān)注
  • 2053 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號