Skip to content

Commit

Permalink
🐛 chore: clean TODO
Browse files Browse the repository at this point in the history
  • Loading branch information
wolfram77 committed May 7, 2023
1 parent f552871 commit f270fb2
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 86 deletions.
83 changes: 0 additions & 83 deletions TODO
Original file line number Diff line number Diff line change
@@ -1,14 +1,3 @@
SORTS, IN PAIR

Instead of mapFn, provide pair array to define sort mapping.
selectionSort, insertionSort, bubbleSort, mergeSort, (are all stable?)
quickSort, shellSort, radixSort, timSort, heapSort
https://en.wikipedia.org/wiki/Sorting_algorithm
https://www.npmjs.com/package/sort-algorithms-js
https://dl.acm.org/doi/10.5555/1778580.1778601
https://stackoverflow.com/questions/463105/in-place-radix-sort/474040#474040


MINNTH, MAXNTH, SORTEDSLICE (ARRAYVIEW)

Need only part of sorted array? [bag][nth] ...
Expand All @@ -23,75 +12,3 @@ PARSE, OTHERS

INDEX -VE
- moveWithin


OLD SORT ALGORITHMS

/**
* Arrange values in order!
* @param x an array (updated!)
* @param fc compare function (a, b)
* @param fm map function (v, i, x)
* @param fs swap function (x, i, j)
* @returns x | x[i] ≤ x[j] ∀ i ≤ j
*/
function bubbleSort$<T, U=T>(x: T[], fc: CompareFunction<T|U> | null=null, fm: MapFunction<T, T|U> | null=null, fs: SwapFunction<T> | null=null): T[] {
var fc = fc || COMPARE;
var fm = fm || IDENTITY; // TODO: use map function
var fs = fs || swap$;
var X = x.length;
for (var i=0; i<X-1; ++i) {
for (var j=i+1; j<X; ++j)
if (fc(x[i], x[j]) > 0) fs(x, i, j);
}
return x;
}


/**
* Arrange values in order!
* @param x an array (updated!)
* @param fc compare function (a, b)
* @param fm map function (v, i, x)
* @param fs swap function (x, i, j)
* @returns x | x[i] ≤ x[j] ∀ i ≤ j
*/
function selectionSort$<T, U=T>(x: T[], fc: CompareFunction<T|U> | null=null, fm: MapFunction<T, T|U> | null=null, fs: SwapFunction<T> | null=null): T[] {
var fc = fc || COMPARE;
var fm = fm || IDENTITY; // TODO: use map function
var fs = fs || swap$;
var X = x.length;
for (var i=0; i<X-1; ++i) {
var l = i;
for (var j=i+1; j<X; ++j)
if (fc(x[l], x[j]) > 0) l = j;
fs(x, i, l);
}
return x;
}


// TODO: Check if this is correct!
/**
* Arrange values in order!
* @param x an array (updated!)
* @param fc compare function (a, b)
* @param fm map function (v, i, x)
* @param fs swap function (x, i, j)
* @returns x | x[i] ≤ x[j] ∀ i ≤ j
*/
function insertionSortOld$<T, U=T>(x: T[], fc: CompareFunction<T|U> | null=null, fm: MapFunction<T, T|U> | null=null, fs: SwapFunction<T> | null=null): T[] {
var fc = fc || COMPARE;
var fm = fm || IDENTITY; // TODO: use map function
var fs = fs || swap$; // TODO: use swap function
var X = x.length;
for (var i=X-2; i>=0; --i) {
var xv = x[i], mv = x[i];
for (var j=i+1; j<X; j++) {
if (fc(mv, x[j]) <= 0) break;
x[j-1] = x[j];
}
x[j-1] = xv;
}
return x;
}
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "extra-array",
"version": "4.0.1",
"version": "4.0.2",
"description": "An array is a collection of values, stored contiguously.",
"main": "index.js",
"module": "index.mjs",
Expand Down

0 comments on commit f270fb2

Please sign in to comment.