Python Program for Gnome Sort
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.
# 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, # |
Output:
Sorted seqquence after applying Gnome Sort : -9 2 10 34