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?
Quelle (leicht modifiziert): Javascript Program to Rearrange positive and negative numbers in O(n) time and O(1) extra space - GeeksforGeeks
-----------------------------------
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(" | "));
Zuletzt bearbeitet: