2017-01-24 28 views
1

我搜索了一下,並找不到任何排序算法,描述這種方式進行排序。我明白,它沒有真正的用處,因爲它非常低效。在Ruby中:這個排序算法的名字是什麼?

def swap(array, i) 
    array[i], array[i+1] = array[i+1], array[i] 
end 

def compare(array, i) 
    array[i] > array[i+1] 
end 

def sort(array) 
    i = 0 
    until i + 1 == array.length 
    if compare(array, i) 
     swap(array, i) 
     i = 0 
    else 
     i += 1 
    end 
    end 
    return array 
end 
+1

'...?真:假'吸。這給我一個非常糟糕的印象。 – sawa

+1

'swap'總是讓我想到泡沫排序,但我並不看好。 –

+0

這是一個非常慢的插入排序。如果你在交換之後而不是「i = 0」做了'i- = 1',那將更加明顯。 –

回答

1

這是Gnome sort樣 - 從一開始走,直到順序衝突發生時,再交換,但這裏位置復位到陣列開始。