# Python Program for Gnome Sort

In this article we are going to see Gnome Sort with Python.

Algorithm Steps:

• If you are at the start of the array then go to the right element (from arr[0] to arr[1]).
• 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.

## Python3

 `# 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:"``, end``=``" "``)``for` `i ``in` `arr:``    ``print``(i, end``=``" "``)` `# 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!

Previous
Next