Files
JavaScript/Sorts/OddEvenSort.js
mustafasalih1993 1f429e6119 OddEvenSort Added
2020-08-03 10:57:36 +03:00

41 lines
1.0 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
oddeven sort or oddeven transposition sort
is a relatively simple sorting algorithm, developed originally for use on parallel processors with local interconnections.
It is a comparison sort related to bubble sort, with which it shares many characteristics.
for more information : https://en.wikipedia.org/wiki/Odd%E2%80%93even_sort
*/
// Helper function to swap array items
function swap (arr, i, j) {
const tmp = arr[i]
arr[i] = arr[j]
arr[j] = tmp
}
function oddEvenSort (arr) {
let sorted = false
while (!sorted) {
sorted = true
for (let i = 1; i < arr.length - 1; i += 2) {
if (arr[i] > arr[i + 1]) {
swap(arr, i, i + 1)
sorted = false
}
}
for (let i = 0; i < arr.length - 1; i += 2) {
if (arr[i] > arr[i + 1]) {
swap(arr, i, i + 1)
sorted = false
}
}
}
}
const testArray = [5, 6, 7, 8, 1, 2, 12, 14, 5, 3, 2, 2]
// Array before sort
console.log(testArray)
oddEvenSort(testArray)
// Array after sort
console.log(testArray)