冒泡排序算法JavaScript

kos*_*has 9 javascript sorting bubble-sort

请问您能告诉我在JavaScript中实现冒泡排序算法有什么问题吗?

for (var i=1; i<records.length; i++){
        for (var j=records.length; j<1; j--){
            if (parseInt(records[i-1]) < parseInt(records[i])){
                var temp = records[i-1];
                records[i-1] = records[i]
                records[i] = temp;
            }   
        }    
    }
Run Code Online (Sandbox Code Playgroud)

Ign*_*rew 31

几个代码为泡沫排序

bubblesort不应该用于较大的数组,因为它的简单性可以用于较小的数组.

方法1

var a = [33, 103, 3, 726, 200, 984, 198, 764, 9];

function bubbleSort(a) {
    var swapped;
    do {
        swapped = false;
        for (var i=0; i < a.length-1; i++) {
            if (a[i] > a[i+1]) {
                var temp = a[i];
                a[i] = a[i+1];
                a[i+1] = temp;
                swapped = true;
            }
        }
    } while (swapped);
}

bubbleSort(a);
console.log(a);
Run Code Online (Sandbox Code Playgroud)

方法2

function bubbleSort(items) {
    var length = items.length;
    //Number of passes
    for (var i = 0; i < length; i++) { 
        //Notice that j < (length - i)
        for (var j = 0; j < (length - i - 1); j++) { 
            //Compare the adjacent positions
            if(items[j] > items[j+1]) {
                //Swap the numbers
                var tmp = items[j];  //Temporary variable to hold the current number
                items[j] = items[j+1]; //Replace current number with adjacent number
                items[j+1] = tmp; //Replace adjacent number with current number
            }
        }        
    }
}
Run Code Online (Sandbox Code Playgroud)

方法3

function bubbleSort() {
    var numElements = this.dataStore.length;
    var temp;
    for (var outer = numElements; outer >= 2; --outer) {
        for (var inner = 0; inner <= outer-1; ++inner) {
            if (this.dataStore[inner] > this.dataStore[inner+1]) {
                swap(this.dataStore, inner, inner+1); }
        }
        console.log(this.toString()); 
    }
}
Run Code Online (Sandbox Code Playgroud)


dav*_*ryn 4

for (var j=records.length; j<1; j--){
Run Code Online (Sandbox Code Playgroud)

难道不应该是这样吗

for (var j=records.length; j>1; j--){
Run Code Online (Sandbox Code Playgroud)