Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 不带任何内置方法的字符串排序_Javascript_String_Sorting_Replace_Functional Programming - Fatal编程技术网

Javascript 不带任何内置方法的字符串排序

Javascript 不带任何内置方法的字符串排序,javascript,string,sorting,replace,functional-programming,Javascript,String,Sorting,Replace,Functional Programming,我想在javascript中对字符串进行排序,而不使用内置方法,只需使用for和比较,如'a'>'b' 一些不起作用的东西: 函数替换(str,i,char){ 返回str.substr(0,i)+char+str.substr(i+1) } 功能交换(str、i1、i2){ 返回replaceAt(replaceAt(str,i1,str[i2]),i2,str[i1]); } 函数排序(str){ var=str; 对于(变量i=0;istr[i+1]){ str=交换(str,i,i+1

我想在javascript中对字符串进行排序,而不使用内置方法,只需使用for和比较,如'a'>'b'

一些不起作用的东西:

函数替换(str,i,char){
返回str.substr(0,i)+char+str.substr(i+1)
}
功能交换(str、i1、i2){
返回replaceAt(replaceAt(str,i1,str[i2]),i2,str[i1]);
}
函数排序(str){
var=str;
对于(变量i=0;istr[i+1]){
str=交换(str,i,i+1)
}
}
返回str;

}
您的代码未应用任何排序算法逻辑,建议您至少阅读1以解决问题

下面是一个程序,它使用生成程序的预期输出

swap
replace
功能工作正常

function sort(str) {
    var sorted = str;
    //Selection sort
    for (var i = 0; i < str.length; i++) {
        for(var j = i + 1; j < str.length - 1; j++) {   
            if (str[i] < str[j]) {
                str = swap(str, i, j)
            }
        }
    }
    return str;
}

console.log(sort("zaasfweqrouoicxzvjlmmknkniqwerpopzxcvdfaa"));
//output: aaaaccdeeffiijkklmmnnoooppqqrrsuvvwwxxzzz
函数排序(str){
var=str;
//选择排序
对于(变量i=0;i

数组=[4,10,2,9,6,3,13,5];
函数数组操作()
{
var count=array.length-1,
临时雇员
J
我
对于(j=0;j数组[i+1])
{
温度=阵列[i+1];
数组[i+1]=数组[i];
数组[i]=温度;
}
}
}
document.write(“升序为
”) 对于(k=0;k=0;k--){ 写入(数组[k]+“
”); } document.write(“最大的数字是
”) 对于(k=array.length-1;k>=0;k--){ if((数组[k])>数组[k-1]){ document.write(数组[k]+“
”) 打破 } } 文档。写入(“最小数字为
”) 对于(k=0;k
函数排序(arr){
arr=arr.split(“”);
对于(i=0;iarr[i]){
温度=arr[i];
arr[i]=arr[j];
arr[j]=温度;
}
}
}
返回arr.join(“”);
}
日志(排序(“dcna”);

sorting string的精确排序方式?给我们一个排序字符串的示例。您只交换相邻元素。我建议您阅读正确的排序算法。任何认真的程序员都应该在书架上放一份Knuth的“sorting and search”。因此,
str=str.split(“”).Sort().join(“”);
不是你想要的吗-P@Barmar:谢谢barmar,但我也在找一本关于算法和编程的书,讽刺的是,我可以自由撰稿并构建完整的web应用程序,因为我是一个差劲的程序员,所以我只能想象如果我是一个好程序员,我能做些什么。RocketHazmat:谢谢你,但没有!步骤1:从那个人那里挑选一个排序算法y、 很多都存在。第2步:实现该排序算法。在完成第1步之前,不要继续执行第2步。因为这似乎是一个学习练习,所以花一些时间了解几种不同的排序算法及其相对优势是值得的。
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
array=[4, 10, 2, 9, 6, 3, 13, 5];
function arrayOperations()
{
    var count = array.length - 1,
        temp,
        j,
        i;

    for (j = 0; j < count; j++)
    {

        for (i = 0; i < count; i++)
        {

            if (array[i] > array[i + 1])
            {
                temp = array[i + 1];
                array[i + 1] = array[i];
                array[i] = temp;
            }

        }
    }
document.write("ascending order is <br>")
for(k=0;k<=array.length-1;k++){
    document.write(array[k]+ "<br>");
    }

document.write("descending order is <br>")
for(k=array.length-1;k>=0;k--){

        document.write(array[k]+ "<br>");
    }
document.write("biggest number is <br>")
for(k=array.length-1;k>=0;k--){

        if((array[k])>array[k-1]){
        document.write(array[k]+"<br>")
        break;
        }
    }
document.write("smallest number is <br>")
for(k=0;k<=array.length;k++){

        if((array[k])<array[k+1]){
        document.write(array[k]+"<br>")
        break;
        }
    }




    }




</script>
  <title></title>
</head>
<body>
array=[4, 10, 2, 9, 6, 3, 13, 5]
<br>
<input type="button" onclick="arrayOperations()" value="find">
</body>
</html>
function sort(arr) {
    arr = arr.split("");
    for (i = 0; i < arr.length; i++) {
        for (j = 0; j < arr.length; j++) {
            if (arr[j] > arr[i]) {
                temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
            }
        }
    }
    return arr.join("");
}
console.log(sort("dcna"));