How it works
Eliminates out of order elements.
Implementation
function stalinSort(arr) { let i = 1; while (i < arr.length) { if (arr[i] < arr[i - 1]) arr.splice(i, 1); else i++; } }
def stalin_sort(arr): i = 1 while i < len(arr): if arr[i] < arr[i - 1]: arr.pop(i) else: i += 1
void stalinSort(vector<int>& arr) { auto it = arr.begin() + 1; while (it != arr.end()) { if (*it < *(it - 1)) it = arr.erase(it); else ++it; } }
void StalinSort(List<int> arr) { int i = 1; while (i < arr.Count) { if (arr[i] < arr[i - 1]) arr.RemoveAt(i); else i++; } }
int stalinSort(int arr[], int n) { int len = 1; for (int i = 1; i < n; i++) if (arr[i] >= arr[len-1]) arr[len++] = arr[i]; return len; // new length }