# 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[0] to arr[1]).
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.