Sorting algorithms/Comb sort: Difference between revisions
Content added Content deleted
Line 1,147: | Line 1,147: | ||
<lang haskell>*Main> combSort [23,76,99,58,97,57,35,89,51,38,95,92,24,46,31,24,14,12,57,78] |
<lang haskell>*Main> combSort [23,76,99,58,97,57,35,89,51,38,95,92,24,46,31,24,14,12,57,78] |
||
[12,14,23,24,24,31,35,38,46,51,57,57,58,76,78,89,92,95,97,99]</lang> |
[12,14,23,24,24,31,35,38,46,51,57,57,58,76,78,89,92,95,97,99]</lang> |
||
=={{header|Haxe}}== |
|||
<lang haxe>class CombSort { |
|||
@:generic public static function sort<T>(arr:Array<T>) { |
|||
var gap:Float = arr.length; |
|||
var swaps = true; |
|||
while (gap > 1 || swaps) { |
|||
gap /= 1.247330950103979; |
|||
if (gap < 1) gap = 1.0; |
|||
var i = 0; |
|||
swaps = false; |
|||
while (i + gap < arr.length) { |
|||
var igap = i + Std.int(gap); |
|||
if (Reflect.compare(arr[i], arr[igap]) > 0) { |
|||
var temp = arr[i]; |
|||
arr[i] = arr[igap]; |
|||
arr[igap] = temp; |
|||
swaps = true; |
|||
} |
|||
i++; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
class Main { |
|||
static function main() { |
|||
var integerArray = [1, 10, 2, 5, -1, 5, -19, 4, 23, 0]; |
|||
var floatArray = [1.0, -3.2, 5.2, 10.8, -5.7, 7.3, |
|||
3.5, 0.0, -4.1, -9.5]; |
|||
var stringArray = ['We', 'hold', 'these', 'truths', 'to', |
|||
'be', 'self-evident', 'that', 'all', |
|||
'men', 'are', 'created', 'equal']; |
|||
Sys.println('Unsorted Integers: ' + integerArray); |
|||
CombSort.sort(integerArray); |
|||
Sys.println('Sorted Integers: ' + integerArray); |
|||
Sys.println('Unsorted Floats: ' + floatArray); |
|||
CombSort.sort(floatArray); |
|||
Sys.println('Sorted Floats: ' + floatArray); |
|||
Sys.println('Unsorted Strings: ' + stringArray); |
|||
CombSort.sort(stringArray); |
|||
Sys.println('Sorted Strings: ' + stringArray); |
|||
} |
|||
}</lang> |
|||
{{out}} |
|||
<pre> |
|||
Unsorted Integers: [1,10,2,5,-1,5,-19,4,23,0] |
|||
Sorted Integers: [-19,-1,0,1,2,4,5,5,10,23] |
|||
Unsorted Floats: [1,-3.2,5.2,10.8,-5.7,7.3,3.5,0,-4.1,-9.5] |
|||
Sorted Floats: [-9.5,-5.7,-4.1,-3.2,0,1,3.5,5.2,7.3,10.8] |
|||
Unsorted Strings: [We,hold,these,truths,to,be,self-evident,that,all,men,are,created,equal] |
|||
Sorted Strings: [We,all,are,be,created,equal,hold,men,self-evident,that,these,to,truths] |
|||
</pre> |
|||
=={{header|Io}}== |
=={{header|Io}}== |