您的位置:首页 > 其它

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

2017-09-22 21:30 323 查看




排序:

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

大概步骤为:

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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐