Array.sort()

jemand anders

Erfahrenes Mitglied
HAT SICH ERLEDIGT!!
-----------------------------------


Hallo,

jemand eine Idee, wie man ein Array mit den Zahlen ["-1,5", "2,0", "0,01", "0,00", "-3,1", "4", "-5,9", "6", "-7", "8", "9"] bzw. [-1.5, 2.0, 0.01, 0.00, -3.1, 4, -5.9, 6, -7, 8, 9] sortiert?


Freundl. Grüße

PS: Bin ich eigentlich der erste, der auf die Idee kommt, so absurde Zahlen sortieren zu wollen?

Javascript:
// Javascript program to put positive
// numbers at even indexes
// (0, 2, 4,..) and negative
// numbers at odd indexes (1, 3,
// 5, ..)


// The main function that
// rearranges elements of given
// array. It puts positive elements
// at even indexes (0,
// 2, ..) and negative numbers
// at odd indexes (1, 3, ..).

function rearrange(arr, n) {
    // The following few lines are similar to partition
    // process of QuickSort. The idea is to consider 0
    // as pivot and divide the array around it.
    let i = -1, temp = 0;
    for (let j = 0; j < n; j++) {
        if (arr[j] < 0) {
            i++;
            temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
    }

    // Now all positive numbers are
    // at end and negative numbers at
    // the beginning of array.
    // Initialize indexes for starting point
    // of positive and negative numbers
    // to be swapped
    let pos = i + 1, neg = 0;

    // Increment the negative index
    // by 2 and positive index by 1, i.e.,
    // swap every alternate negative number
    // with next positive number
    while (pos < n && neg < pos && arr[neg] < 0) {
        temp = arr[neg];
        arr[neg] = arr[pos];
        arr[pos] = temp;
        pos++;
        neg += 2;
    }
}

  function sortNumber2(a,b){
    return a - b;
  }

/*Driver function to check for above functions*/

// var arr = ["-1,5", "2,0", "0,01", "0,00", "-3,1", "4", "-5,9", "6", "-7", "8", "9"];
var arr = [-1.5, 2.0, 0.01, 0.00, -3.1, 4, -5.9, 6, -7, 8, 9];
var n = arr.length;
rearrange(arr, n);
console.log(arr.sort(sortNumber2).join(" | "));


//    console.log(arr.sort().join(" | "));
Quelle (leicht modifiziert): Javascript Program to Rearrange positive and negative numbers in O(n) time and O(1) extra space - GeeksforGeeks
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück