# Python Program for Gnome Sort

• Last Updated : 22 Jun, 2022

Algorithm Steps:

• If you are at the start of the array then go to the right element (from arr to arr).
• 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++;```
• 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--;
}```
• Repeat steps 2) and 3) till ‘i’ reaches the end of the array (i.e- ‘n-1’)
• If the end of the array is reached then stop and the array is sorted.

## Python

 `# 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 sequence after applying Gnome Sort :"``,``for` `i ``in` `arr:``    ``print` `i,` `# Contributed By Harshit Agrawal`

Output

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

Time Complexity: O(n2)

Auxiliary Space: O(1)
Please refer complete article on Gnome Sort for more details!

My Personal Notes arrow_drop_up