Gnome sort
Gnome sort (nicknamed stupid sort) is a variation of the insertion sort sorting algorithm that does not use nested loops. Gnome sort was known for a long time and used without naming it explicitly.[1] It was then popularized by Iranian computer scientist Hamid Sarbazi-Azad (professor of Computer Science and Engineering at Sharif University of Technology)[2] in 2000. The sort was first called stupid sort[3] (not to be confused with bogosort), and then later described by Dick Grune and named gnome sort.[4] Gnome sort performs at least as many comparisons as insertion sort and has the same asymptotic run time characteristics. Gnome sort works by building a sorted list one element at a time, getting each item to the proper place in a series of swaps. The average running time is O(n2) but tends towards O(n) if the list is initially almost sorted.[5][note 1] Dick Grune described the sorting method with the following story:[4]
PseudocodeHere is pseudocode for the gnome sort using a zero-based array: procedure gnomeSort(a[]): pos := 0 while pos < length(a): if (pos == 0 or a[pos] >= a[pos-1]): pos := pos + 1 else: swap a[pos] and a[pos-1] pos := pos - 1 ExampleGiven an unsorted array, a = [5, 3, 2, 4], the gnome sort takes the following steps during the while loop. The current position is highlighted in bold and indicated as a value of the variable
Notes
References
External linksThe Wikibook Algorithm implementation has a page on the topic of: Gnome sort |
Portal di Ensiklopedia Dunia