41 lines
884 B
Markdown
41 lines
884 B
Markdown
## Insertion Sort
|
|
|
|
On a very basic level, an insertion sort algorithm contains the logic of shifting around and inserting elements in order to sort an unordered list of any size. The way that it goes about inserting elements, however, is what makes insertion sort so very interesting!
|
|
|
|
|
|
## Implementation
|
|
```python
|
|
arr = [] # list to sort
|
|
|
|
|
|
def insertionsort(arr):
|
|
|
|
for i in range(1, len(arr)):
|
|
key = arr[i]
|
|
j = i-1
|
|
while j>=0 and key < arr[j]:
|
|
arr[j+1] = arr[j]
|
|
j -= 1
|
|
arr[j+1] = key
|
|
```
|
|
|
|
|
|
### Example
|
|
```python
|
|
arr = [7,4,9,2,6,3]
|
|
|
|
def insertionsort(arr):
|
|
|
|
for i in range(1, len(arr)):
|
|
key = arr[i]
|
|
j = i-1
|
|
while j>=0 and key < arr[j]:
|
|
arr[j+1] = arr[j]
|
|
j -= 1
|
|
arr[j+1] = key
|
|
|
|
|
|
insertionsort(arr)
|
|
print('Sorted %s' %arr) # sorted [2, 3, 4, 6, 7, 9]
|
|
```
|