# Python Program for Gnome Sort

Algorithm Steps

1. If you are at the start of the array then go to the right element (from arr to arr).
2. If the current array element is larger or equal to the previous array element then go one step right
```                   if (arr[i] >= arr[i-1])
i++;
```
1. If the current array element is smaller than the previous array element then swap these two elements and go one step backwards
```                       if (arr[i] < arr[i-1])
{
swap(arr[i], arr[i-1]);
i--;
}
```
1. Repeat steps 2) and 3) till ‘i’ reaches the end of the array (i.e- ‘n-1’)
2. If the end of the array is reached then stop and the array is sorted.

 `# Python program to implement Gnome Sort ` ` `  `# A function to sort the given list using Gnome sort ` `def` `gnomeSort( arr, n): ` `    ``index ``=` `0` `    ``while` `index < n: ` `        ``if` `index ``=``=` `0``: ` `            ``index ``=` `index ``+` `1` `        ``if` `arr[index] >``=` `arr[index ``-` `1``]: ` `            ``index ``=` `index ``+` `1` `        ``else``: ` `            ``arr[index], arr[index``-``1``] ``=` `arr[index``-``1``], arr[index] ` `            ``index ``=` `index ``-` `1` ` `  `    ``return` `arr ` ` `  `# Driver Code ` `arr ``=` `[ ``34``, ``2``, ``10``, ``-``9``] ` `n ``=` `len``(arr) ` ` `  `arr ``=` `gnomeSort(arr, n) ` `print` `"Sorted seqquence after applying Gnome Sort :"``, ` `for` `i ``in` `arr: ` `    ``print` `i, ` ` `  `# Contributed By Harshit Agrawal `

Output:

```Sorted seqquence after applying Gnome Sort : -9 2 10 34
```

Please refer complete article on Gnome Sort for more details!

My Personal Notes arrow_drop_up

Article Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.