📜  用于 Gnome 排序的Python程序

📅  最后修改于: 2022-05-13 01:56:56.600000             🧑  作者: Mango

用于 Gnome 排序的Python程序

算法步骤:

  • 如果您位于数组的开头,则转到正确的元素(从 arr[0] 到 arr[1])。
  • 如果当前数组元素大于或等于前一个数组元素,则向右走一步
if (arr[i] >= arr[i-1])
                      i++;
  • 如果当前数组元素小于前一个数组元素,则交换这两个元素并向后退一步
if (arr[i] < arr[i-1])
                       {
                           swap(arr[i], arr[i-1]);
                           i--;
                       }
  • 重复步骤 2) 和 3) 直到 'i' 到达数组的末尾(即 - 'n-1')
  • 如果到达数组的末尾,则停止并对数组进行排序。
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


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

请参阅有关 Gnome 排序的完整文章以获取更多详细信息!