日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

经典编程问题之:选择排序、冒泡排序、汉诺塔游戏,均用js代码实现

發布時間:2025/3/15 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 经典编程问题之:选择排序、冒泡排序、汉诺塔游戏,均用js代码实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.???????排序問題

a)??????選擇排序

//選擇排序,第一個和逐一和后面每個數比較,比較后交換使得第一個數成為較大/小值后,第一個數后面所有數比較完了就得到了最大/小值(第一趟比較完畢),然后第二個和后面每個數比較得到 第二大/小值。。。

var a=[10,1,29,8,19,11,20,12,56,78];

for(var i=0;i<a.length-1;i++){

??? for(var j=i+1;j<a.length;j++){

????????? if(a[i]>a[j]){

?????????????? var temp ;

?????????????? temp = a[i] ;

?????????????? a[i]? = a[j];

?????????????? a[j]=temp;

????????? }

??? }

}

a;

b)??????冒泡排序

//冒泡排序,第一個和第二數個比較大小,根據比較情況選擇是否冒泡(交換位置),

第二個數和第三個數比較,根據比較情況選擇是否冒泡(交換位置)。。。第一趟比較完畢,最大/小值已放到最最后一位,然后第二趟

var a=[10,1,29,8,19,11,20,12,56,78];

for(var i=0;i<a.length;i++){//控制循環趟數

???? for(varj=0;j<a.length-1;j++){//每趟進行冒泡比較

????????? if(a[j]>a[j+1]){

??????????????? var temp ;

??????????????? temp = a[j] ;

??????????????? a[j]? = a[j+1];

??????????????? a[j+1]=temp;

????????? }

???? }

}

a;

上面代碼雖然可以實現冒泡排序的效果,但是不夠優化

如果冒泡排序10個數,只需要循環9趟即可,因為循環第10趟是排序已經排好。再就是外循環跑一趟,實際上已經把最大/小值冒泡到最后位置,所以內循環進行冒泡排序不在需要和已經冒泡好的數據進行比較。

故此,優化后的代碼是:

var a=[10,1,29,8,19,11,20,12,56,78];

for(var i=0;i<a.length-1;i++){//控制循環趟數,排序數字個數減一

//每趟進行冒泡比較,已經冒泡的數字不在循環比較

???? for(varj=0;j<a.length-1-i;j++){????????

if(a[j]>a[j+1]){

??????????????? var temp ;

??????????????? temp = a[j] ;

??????????????? a[j]? = a[j+1];

??????????????? a[j+1]=temp;

????????? }

???? }

}

a;

1.???????漢諾塔問題


這是典型的函數遞歸調用問題

1)??當A塔上只有1個圓盤,可直接從A—>C。

2)??當A塔上有2個圓盤, A—>B(小圓盤),A—>C(大圓盤),B—>C(小圓盤)。

當有2個圓盤時,需要借助B柱子進行轉換。

3)??當我們有很多圓盤時,我們可以看做2個圓盤,最下面的大圓盤 和其上面的所有圓盤當做小圓盤。這樣我們就可以用函數遞歸調用了。

比如A柱上有10個圓盤,我們需要把A柱10號大圓盤 上所有圓盤移動 B柱,這樣10號大圓盤盤就可以移動到C柱。我們想要把10號圓盤上的所有圓盤移動到B柱,我們就需要把9號圓盤上所有圓盤移動到A柱,這樣9號圓盤就可以移動到B柱。感覺有點說不清,畫個圖:


/**

*@param num 盤子數

*@param A 當前柱子

*@param B 中間柱子

*@param C 目標柱子

*/

function? hanLuo(num,A,B,C){

???? if(num==1){

????????? console.log(A+'-->'+C);//只有一個盤子A-->C

}else{

???? hanLuo(num-1,A,C,B);//將num-1個盤子從A-->B

???? console.log(A+'-->'+C);?? //將最下面的盤子(num)盤子,從A柱子移動到C柱子???

???? hanLuo(num-1,B,A,C)//將num-1個盤子從B-->C

}

}

hanLuo(2,'A','B','C');

?

function? hanLuo(num,A,B,C){

???? if(num==1){

????????? returnA+'-->'+C+',';//只有一個盤子A-->C

}else{

???? var str1 =hanLuo(num-1,A,C,B);//將num-1個盤子從A-->B

???? var str3 =A+'-->'+C+','; //將最下面的盤子(num)盤子,從A柱子移動到C柱子???

???? var str2 =hanLuo(num-1,B,A,C)//將num-1個盤子從B-->C

???? return str1+str3+str2;

}

}

hanLuo(2,'A','B','C');


總結

以上是生活随笔為你收集整理的经典编程问题之:选择排序、冒泡排序、汉诺塔游戏,均用js代码实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲AV成人无码一二三区在线 | 欧美成人免费在线 | 四虎国产视频 | 欧美骚少妇 | 手机看片国产1024 | 亚洲av无码乱码在线观看性色 | 免费毛片网站在线观看 | 午夜神马影院 | 乳色吐息在线观看 | 永久免费未满 | 日韩福利一区二区三区 | 色午夜婷婷 | 成年人免费网站在线观看 | 性做久久久久久久 | 四虎影院一区二区 | 国产一级淫片免费 | 亚洲成人一级片 | 亚洲av激情无码专区在线播放 | 青青草国产一区 | 亚洲插插| 无码一区二区三区 | 成人免费福利 | 黄色一区二区三区四区 | 日韩免费在线视频 | 国产视频在线观看视频 | 狠狠干夜夜爽 | 一级免费在线 | 免费视频黄色 | 成人爱爱视频 | 灌篮高手全国大赛电影 | 激情开心成人网 | 国产精品美女久久久久久久久 | 欧美一级特黄aaaaaa大片在线观看 | 日韩一区二区三区三四区视频在线观看 | 欧美亚洲色综久久精品国产 | www.超碰97.com| 麻豆福利视频 | 五月婷网 | 少妇又色又爽 | 国产极品福利 | 粉嫩小泬无遮挡久久久久久 | 欧美三级图片 | 欧美 日韩 国产 中文 | 欧美日韩黑人 | 艳妇臀荡乳欲伦交换在线播放 | 亚洲国产精品女人 | 久久色资源网 | 色乱码一区二区三区熟女 | 污污视频在线免费看 | 天天色综合久久 | 黄色在线免费观看视频 | 熟女人妻在线视频 | 麻豆午夜 | 中文字幕av一区 | 黄色av软件 | 中文无码一区二区三区在线观看 | 青草91| 欧美顶级metart裸体全部自慰 | 五月天婷婷在线播放 | av三级网 | 欧美又大又硬又粗bbbbb | 97黄色片 | 国产又粗又猛又黄又爽无遮挡 | 国产一区二区三区在线观看 | 欧美顶级少妇做爰 | 亚洲av无码精品色午夜 | 写真福利片hd在线播放 | 黄色片在线免费 | 成人免费视频国产在线观看 | 岛国精品一区二区三区 | 国产精品1 | 日韩精品在线视频观看 | 欧美日韩人妻精品一区二区三区 | 夜夜嗨av一区二区三区四区 | 欧洲精品久久久 | 日本免费黄网站 | 中文字幕在线观看视频免费 | 亚洲永久精品一区二区 | 欧美sm凌虐视频网站 | 毛片网站有哪些 | 亚洲乱码少妇 | 国产91久| 欧美aaaaa| 香蕉国产片 | 337p亚洲精品色噜噜狠狠 | 91成人高清| 538国产视频 | 重口另类| 91偷拍一区二区三区精品 | 热久久免费 | 波多野吉衣久久 | 激情网久久 | 女人和拘做爰正片视频 | 看黄网站在线 | 欧美三级在线观看视频 | 噼里啪啦动漫高清在线观看 | 午夜激情网站 | 在线免费看污网站 | 娇妻玩4p被三个男人伺候电影 |