冒泡排序和選擇排序 作用和原理 將數組中的數值,按照執行的順序,從小到大排序或者從大到小排序,本文中均為從小到大排序。 冒泡排序 原理: 相鄰的兩個單位,比較存儲的數據,如果第一個單元的數據較大,就將兩個相鄰單元,交換存儲數據 核心: 交換存儲的數據 兩個相鄰的單元,比較數據大小,第一個單元數值較大 ...
冒泡排序和選擇排序 作用和原理 將數組中的數值,按照執行的順序,從小到大排序或者從大到小排序,本文中均為從小到大排序。 冒泡排序 原理: 相鄰的兩個單位,比較存儲的數據,如果第一個單元的數據較大,就將兩個相鄰單元,交換存儲數據 核心: 交換存儲的數據 兩個相鄰的單元,比較數據大小,第一個單元數值較大,就交換兩個單元存儲的數據 var num=[5,6,7,1,8,9,3,4,2]; //這是用的最基礎的for迴圈嵌套的語法寫的,主要是排序的思路 //第一個for迴圈一次迴圈確定一個最大的數 for(var n=0;n<=num.length-1-1;n++){ //裡面的for迴圈是依次將兩個相鄰的數進行比較,直到比到前面已經比過的n個數為止(因為後面已經比過的數都已經確定是比前面的數大了,所以不用再比了,這樣可以提升程式的執行效率) for(var m=0;m<=num.length-1-1-n;m++){ //if語句將兩個相鄰的數從小到大排好 if(num[m]>num[m+1]){ var x=0; x=num[m]; num[m]=num[m+1]; num[m+1]=x; } } } document.write(num); 選擇排序 核心 : 找到最小值的索引,與起始位置交換數值,先找索引 在交換數值 代碼: //選擇排序跟冒泡排序的程式相近,但有本質的區別。選擇排序是先找到最小數的索引然後與起始值交換數值,而冒泡排序是兩個兩個依次比較將最大數(或者最小數)沉底 var num=[5,6,7,1,8,9,3,4,2]; for(var n=0;n<=num.length-1-1;n++){ var min=n; for(var m=n+1;m<=num.length-1;m++){ //這裡min是最小數的索引而不是最小數,這點要註意!!! if(num[min]>num[m]){ min=m; } } if(min!=n){ var x=0; x=num[min]; num[min]=num[n]; num[n]=x; } } document.write(num);