JavaScript选择排序为何挂起

JavaScript选择排序为何挂起,javascript,algorithm,sorting,Javascript,Algorithm,Sorting,我有以下代码: var longLorem = "..."; // here is a string, > 1 000 000 length var bufferSize = 1000000; var lorem = longLorem.substring(0, bufferSize - 1).split(''); var swap; var i, j; for(i=0;i<bufferSize;i++){ for(j=i+1;j<bufferSize;j++){

我有以下代码:

var longLorem = "..."; // here is a string, > 1 000 000 length
var bufferSize = 1000000;
var lorem = longLorem.substring(0, bufferSize - 1).split('');
var swap; 
var i, j;
for(i=0;i<bufferSize;i++){
    for(j=i+1;j<bufferSize;j++){
    if(lorem[i] > lorem[j]){
        swap = lorem[i];
        lorem[i] = lorem[j];
        lorem[j] = swap;
    }
    }
}
而C#代码完成了大约10米:

using System;

namespace MySort {
    public class Some {
    public static void Main() {
        int bufferSize = 1000000;
        string loremFile = System.IO.File.ReadAllText("lorem.txt");
        var chars = loremFile.ToCharArray(0, bufferSize);

        for(int i = 0; i<bufferSize; i++) {
        for(int j=i+1; j<bufferSize; j++) {
            if(chars[i] > chars[j]) {
            char swap = chars[i];
            chars[i] = chars[j];
            chars[j] = swap;
            }
        }
        }

        Console.Write("'");
        Console.Write(chars);
        Console.Write("'\n");
    }
    }
}
使用系统;
名称空间MySort{
公开课{
公共静态void Main(){
int bufferSize=1000000;
字符串loremFile=System.IO.File.ReadAllText(“lorem.txt”);
var chars=loremFile.ToCharArray(0,bufferSize);

对于(int i=0;i我相信Chrome在长时间的操作过程中有挂起的趋势,有时会崩溃。我在Chrome和Firefox中做过一些事情,Chrome会崩溃标签,而Firefox也会永远崩溃,但不会崩溃。我会在Firefox上不断弹出“继续/停止”脚本


如果你说在
c
中完成大约需要20分钟,那么我想web浏览器可能需要很长时间(如果不是更长的话),而且在大多数情况下,浏览器会试图杀死脚本。

我认为目前对我们来说最重要的问题是“为什么?”-你想达到什么目的?@6502那太残忍了lol@SmokeyPHP我只是好奇技术的速度比较JS和C或C的执行时间有什么意义?没有意义。我在玩技术。
using System;

namespace MySort {
    public class Some {
    public static void Main() {
        int bufferSize = 1000000;
        string loremFile = System.IO.File.ReadAllText("lorem.txt");
        var chars = loremFile.ToCharArray(0, bufferSize);

        for(int i = 0; i<bufferSize; i++) {
        for(int j=i+1; j<bufferSize; j++) {
            if(chars[i] > chars[j]) {
            char swap = chars[i];
            chars[i] = chars[j];
            chars[j] = swap;
            }
        }
        }

        Console.Write("'");
        Console.Write(chars);
        Console.Write("'\n");
    }
    }
}