File tree 2 files changed +86
-0
lines changed
2 files changed +86
-0
lines changed Original file line number Diff line number Diff line change
1
+ #
2
+ # Sort by ruby array
3
+ #
4
+ # Created 2012/NOV/6
5
+
6
+ #
7
+
8
+ # Number of integer you will sort
9
+ Repeat = 100
10
+ # Sort array
11
+ s_array = [ ]
12
+
13
+ # Create data
14
+ puts "Sort preparing..."
15
+ 1 . upto ( Repeat ) {
16
+ s_array << rand ( Repeat *10 )
17
+ }
18
+ p s_array . join ( " " )
19
+
20
+ puts "Sort begin"
21
+ s_array . sort!
22
+ puts "Sort end"
23
+
24
+ # Show sorted data
25
+ p s_array . join ( " " )
Original file line number Diff line number Diff line change
1
+ #
2
+ # Quick sort
3
+ #
4
+ # Created 2012/NOV/5
5
+
6
+ #
7
+
8
+ # Number of integer you will sort
9
+ Repeat = 100
10
+ # Sort data
11
+ $g_sort = [ ]
12
+
13
+ #
14
+ #Quick sort
15
+ #
16
+ def quick_sort ( bottom , top )
17
+ return if bottom >= top
18
+ # Select first value as sort base value
19
+ div = $g_sort[ bottom ]
20
+ upper = top
21
+ lower = bottom
22
+ while lower < upper do
23
+ while lower <= upper && $g_sort[ lower ] <= div do
24
+ lower += 1
25
+ end
26
+ while lower <= upper && $g_sort[ upper ] > div do
27
+ upper -= 1
28
+ end
29
+ if lower < upper
30
+ tmp = $g_sort[ lower ]
31
+ $g_sort[ lower ] = $g_sort[ upper ]
32
+ $g_sort[ upper ] = tmp
33
+ end
34
+ end
35
+ # Move selected value to center
36
+ tmp = $g_sort[ bottom ]
37
+ $g_sort[ bottom ] = $g_sort[ upper ]
38
+ $g_sort[ upper ] = tmp
39
+
40
+ quick_sort ( bottom , upper - 1 )
41
+ quick_sort ( upper + 1 , top )
42
+
43
+ end
44
+
45
+ #
46
+ #Main
47
+ #
48
+
49
+ # Create data
50
+ puts "Sort preparing..."
51
+ 1 . upto ( Repeat ) {
52
+ $g_sort << rand ( Repeat *10 )
53
+ }
54
+ p $g_sort. join ( " " )
55
+
56
+ puts "Sort begin"
57
+ quick_sort ( 0 , Repeat -1 )
58
+ puts "Sort end"
59
+
60
+ # Show sorted data
61
+ p $g_sort. join ( " " )
You can’t perform that action at this time.
0 commit comments