JavaScript-6(数组的大小排序)

1 给出一个数组,将这个数组由小到大的排序。

思路分析:(1)通过一个for循环嵌套另一个for再嵌套一个if语句来实现目的

                   (2)外层的for循环控制从0位到最大位的变化

                    (3)内层的for循环控制当外层确定时,外层确定的位数的右边的位数

                     (4)通过if语句判定大小,然后通过赋值法调整顺序

<script type="text/javascript">
	 //创建数组变量arr,赋值给他一个数组;创造最大值变量max,方便赋值调换
            var arr=[8,4,6,3,12,5,7];  
            var max;
   //外层for,从0到最大位循环,由于数组是从0位开始的,所以最初值设为0;数组的length为6时,最大位数为5,所以i最大循环不超过length即可。   
            for(var i=0; i<arr.length; i++){
   //内层for,循环的位数比外层大1即可,这样每循环一次外层,会将外层位数的右边的所有数值与外层位数的大小进行if比较
                for(var j=(i+1); j<arr.length; j++){
      /*如果从左到右从小到大排列的话,在这里只要探讨左边的比右边的大的情况即可。因为其余情况默认不变;当左边比右边大时,
              把右边的数赋值给左边,然后把左边的数赋值给右边,这样外循环一次能保证0号位数值最小,外循环第二次时,能保证1号位数值比2~n都小,
              如此外循环完毕后,能从小到大排列数组*/
                    if(arr[i]>arr[j]){
                    	max = arr[i];
                    	arr[i]=arr[j];
                    	arr[j]=max;
                    }
            }
          }
       document.write(arr)
</script>

2 给出一个数组,将这个数组由大到小的排序。

思路分析:与上题相似

<script type="text/javascript">
     //创建数组变量arr,赋值给他一个数组;创造最小值变量min,方便赋值调换
            var arr=[8,15,3,112,22,37,47];  
            var min;
   //外层for,从0到最大位循环,由于数组是从0位开始的,所以最初值设为0;数组的length为6时,最大位数为5,所以i最大循环不超过length即可。   
            for(var i=0; i<arr.length; i++){
   //内层for,循环的位数比外层大1即可,这样每循环一次外层,会将外层位数的右边的所有数值与外层位数的大小进行if比较
                for(var j=(i+1); j<arr.length; j++){
      /*如果从左到右从大到小排列的话,在这里只要探讨右边的比左边的大的情况即可。因为其余情况默认不变;当右边比左边大时,
              把右边的数赋值给左边,然后把左边的数赋值给右边,这样外循环一次能保证0号位数值最大,外循环第二次时,能保证1号位数值比2~n号位都大,
              如此外循环完毕后,能从大到小排列数组*/
                    if(arr[j]>arr[i]){
                        min = arr[i];
                        arr[i]=arr[j];
                        arr[j]=min;
                    }
            }
          }
       document.write(arr)
</script>
    

 

posted @ 2018-04-10 11:36  张锐0328  阅读(333)  评论(0编辑  收藏  举报