现有一个n个整数的序列,你要做的就是交换两个数的位置直到整个序列按照升序排列,那么将这个整数序列排好序,需要交换多少次?

来源:互联网 发布:程序员女朋友礼物代码 编辑:程序博客网 时间:2024/06/05 07:58

微笑微笑

排序:

方法一:冒泡排序编的代码来实现降序和升序:

大概步骤为:

i=0,j=1,2,3;

i=1,j=2,3;

i=2,j=3;

i=3,j=4;(j<4)所以这一步直接跳出循环

var a = "4 3 2 1";var b = a.replace(/\s+/g,"");var c = b.split("");var len = b.length;var count = 0;for(var i = 0;i<len-1;i++){    for(var j = i+1;j<len;j++){        var temp = c[i];        if(temp>c[j]){//这里改为<号,实现升序排列            var index = c[j];            c[j] = index;            c[i] = temp;            count+=1;        }    }}var d = c.join("");alert(d);alert(count);

方法二:使用js提供的sort()和reverse()方法

var arr = [2,3,1,12,33,42,22,67,43];var arrNew = arr.sort(sortNumber);console.log(arrNew);function sortNumber(a,b){//    return b-a;    if(a<b){        return 1;    }else if(a>b){        return -1;    }else{        return 0;    }}
这里是升序排序,如果要实现降序:将升序得到的数据reverse()即可,或者将sortNumber函数改写为:

function sortNumber(a,b){//    return a-b;    if(a<b){        return -1;    }else if(a>b){        return 1;    }else{        return 0;    }}


阅读全文
0 0