1. 程式人生 > >將陣列升序排列的方法與氣泡排序

將陣列升序排列的方法與氣泡排序

example array :     [4,6,1,4,7,5,9,3]

更新使用JS中的sort()方法排序 :

程式碼如下

<script type="text/javascript">
            var example = [4,6,1,40,7,5,9,3];
//          var re = example.sort();
//          自帶的sort()方法是按第一個字元排序的,因此會把7排在40後面,需要手動加一個函式,其引數是固定的,函式名可以自定
            function sort_num(x,y){
                return
x-y; //x-y為升序,y-x為降序 } // 因此在呼叫sort方法時,需要將sort_num函式傳入,切記不是將sort_num()傳入! var re = example.sort(sort_num); document.write(re);
</script>

—————————-分割線——————————
更新氣泡排序:

程式碼如下

<script type="text/javascript">
    function sort_array
(arr){
for (var i=0;i<arr.length-1;i++) { //外層迴圈控制迴圈的輪數 for (var j=0;j<arr.length-1-i;j++) { //內層迴圈控制這這一輪元素比較的次數,-i是因為每次比完後,靠右的元素均為較大值,不需再比較 if (arr[j]>=arr[j+1]) { var temp = arr[j]; //定義臨時變數,當作陣列元素交換的容器 arr[j]= arr[j+1
];//元素交換位置 arr[j+1] = temp; } } } return arr; } var example = [4,6,1,4,7,5,9,3]; document.write(sort_array(example));
</script>

——————————–分割線———————————–

JS程式碼演算法如下:

<script type="text/javascript">
    function sort_array(arr){
        var temp;       //定義臨時變數,當作陣列元素交換的容器
        for (var i=0;i<arr.length-1;i++) {  //外層迴圈控制需要比較的元素數量
            for (var j=i+1;j<arr.length;j++) { //內層迴圈控制這個元素比較的次數
                if (arr[i]>=arr[j]) {
                    temp = arr[j];              //元素交換位置
                    arr[j]= arr[i];
                    arr[i] = temp;
                }
            }
        }
        return arr;
    }
    var example = [4,6,1,4,7,5,9,3];
    document.write(sort_array(example));
</script>

若有錯漏,歡迎建議和指正.
如果您有更好的方式,期待與您的交流!