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>