IndexSort
From EverybodyWiki Bios & Wiki
| File:Empty Example of IndexSort. starting with first value and switching by its index, if correct place go next one, repeated until done. | |
| Class | Sorting algorithm |
|---|---|
| Data structure | Array |
| Worst-case performance | around: |
| Best-case performance | probably around: |
| Average performance | around: |
| Worst-case space complexity | as it doesn't use auxiliary arrays [1] |
index sort is an index based Sorting algorithm that sorts by taking value (if language have index 0 put value - 1) and putting as index, it breaks when it has duplicate value, only works on integer values
Algorithm
basically it works:
- take first value of array (called current) and go to array[current - 1] and switch places with other value same index as current, then continuing on first value do same repeatedly
- if array[current - 1] is same as current - 1, it will go to 2nd value, and repeated until sorted
implementation/code
we will use python for this example
def Indexsort(arr):
current = 0
n = len(arr)
while current < n:
target = arr[current] - 1
if 0 <= target < n and arr[current] != arr[target]:
arr[current], arr[target] = arr[target], arr[current]
else:
current += 1
note
- current implementation likely crashes if there are repeated values
- needed gif image
- still under maintenance, don't expect a lot from it
This article "IndexSort" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:IndexSort. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.
- ↑ Skiena (2008, p. 122)
