JavaScript 冒泡排序和選擇排序的實(shí)現(xiàn)代碼
廢話不多說(shuō)了,直接給大家貼代碼了,具體代碼如下所述:
var array = [1,2,3,4,5]; // ---> 服務(wù)
//效率 ---> 針對(duì)一個(gè)有序的數(shù)組 效率最高
//標(biāo)志 true false
for(var j = 0; j < array.length - 1;j++ ){
//- j 每次排序完成之后 后面減少比較的次數(shù)
var isTrue = true; //如果數(shù)組本身就是升序,則直接輸出
for(var i = 0; i < array.length - j - 1;i++){
if(array[i] > array[i+1])
{
var temp = array[i];
array[i] = array[i+1];
array[i+1] = temp;
isTrue = false;
}
}
document.write(array);
if(isTrue){
break;
}
}
var array = [12,34,4,6,20];
//length - 1 j = 0 - length - 1
for(var j = 0; j < array.length - 1;j++){
var min = array[j]; // 1 3 34 4 345 5
var minIndex = j;
for(var i = j + 1; i < array.length;i++){
if(array[i] < min){
min = array[i];
minIndex = i;
}
}
if(minIndex != j){
var temp = array[minIndex];
array[minIndex] = array[j];
array[j] = temp;
}
}
下面在看下Javascript實(shí)現(xiàn)三種排序:冒泡排序、選擇排序、插入排序的代碼
<script type="text/javascript">
var a;
a = [66, 53, 11, 5, 4, 3, 2, 1];
/*冒泡排序*/
(function maopaopaixu() {
for (var i = 0; i < a.length - 1; i++) {//比較的次數(shù)是length-1
for (var j = 0; j < a.length - 1 - i; j++) {
if (a[j] > a[j + 1]) {
var tmp = a[j];
a[j] = a[j + 1];
a[j + 1] = tmp;
}
}
}
alert(a);
})();
a = [66, 53, 11, 5, 4, 3, 2, 1];
/*選擇排序*/
(function xuanzepaixu() {
var min/*最小項(xiàng)的索引*/, tmp;
for (var out = 0; out < a.length - 1; out++) {//比較的次數(shù)是length-1
min = out;
for (var inner = out + 1; inner < a.length; inner++) {//這里是a.length,不是a.lenght-1,因?yàn)楹笳邥?huì)導(dǎo)致右數(shù)第2項(xiàng)沒(méi)法參與排序。
if (a[inner] < a[min]) {
min = inner;
}
//將最小的項(xiàng)移動(dòng)到左側(cè)
tmp = a[out];
a[out] = a[min]
a[min] = tmp;
}
}
alert(a);
})();
a = [66, 53, 11, 5, 4, 3, 2, 1];
/*插入排序*/
(function charupaixu() {
for (var out = 1; out < a.length; out++) {
var tmp = a[out];
var inner = out;
while (a[inner - 1] > tmp) {
a[inner] = a[inner - 1];
--inner;
}
a[inner] = tmp;
}
alert(a);
})();
</script>
以上所述是小編給大家介紹的JavaScript 冒泡排序和選擇排序的實(shí)現(xiàn)代碼,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家!
相關(guān)文章
javascript實(shí)現(xiàn)yield的方法
這篇文章介紹了javascript實(shí)現(xiàn)yield的方法,有需要的朋友可以參考一下2013-11-11
js實(shí)現(xiàn)自動(dòng)輪換選項(xiàng)卡
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)自動(dòng)輪換選項(xiàng)卡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
js實(shí)現(xiàn)不提示直接關(guān)閉網(wǎng)頁(yè)窗口
本文主要介紹了js實(shí)現(xiàn)不提示直接關(guān)閉網(wǎng)頁(yè)窗口的方法。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-03-03
javascript replace()方法的簡(jiǎn)單分析
javascript中replace()在javascript中,String的函數(shù)replace()簡(jiǎn)直太讓人喜愛(ài)了。它靈活而強(qiáng)大的字符替換處理能力,讓我不禁想向大家介紹它。2008-11-11
jquery實(shí)現(xiàn)select下拉框美化特效代碼分享
這篇文章主要介紹了jquery實(shí)現(xiàn)select下拉框美化特效,實(shí)現(xiàn)效果簡(jiǎn)潔大方,推薦給大家,有需要的小伙伴可以參考下。2015-08-08
JavaScript前端超時(shí)異步操作完美解決過(guò)程
這篇文章主要為大家介紹了JavaScript前端超時(shí)異步操作的完美解決方式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11
處理JavaScript值為undefined的7個(gè)小技巧
這篇文章主要介紹了處理JavaScript值為undefined的7個(gè)小技巧,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07

