source: trunk/gsdl3/extensions/vishnu/src/vishnu/util/Misc.java@ 8417

Last change on this file since 8417 was 8283, checked in by kjdon, 20 years ago

some new files from daniel's new server code

  • Property svn:keywords set to Author Date Id Revision
File size: 3.3 KB
Line 
1package vishnu.util;
2
3import java.awt.*;
4import java.awt.event.*;
5import java.util.*;
6
7public class Misc {
8
9 // quickSort
10 private static void qs(int l, int r, double v[][])
11 {
12 if( l < r )
13 {
14 int i = l;
15 int j = r;
16 double pivot = v[1][(l+r)/2];
17 do
18 {
19
20 while( v[1][i] < pivot )
21 {
22 i++;
23 }
24 while( v[1][j] > pivot )
25 {
26 j--;
27 }
28
29 if( i <= j )
30 {
31 if( i < j )
32 {
33 double t1 = v[1][i];
34 double t0 = v[0][i];
35 v[1][i] = v[1][j];
36 v[1][j] = t1;
37 v[0][i] = v[0][j];
38 v[0][j] = t0;
39 }
40 i++;
41 j--;
42 }
43
44 }
45 while( i <= j );
46 qs(l,j,v);
47 qs(i,r,v);
48
49 }
50 }
51
52
53
54 // quickSort
55 private static void qs(int l, int r, double v[])
56 {
57 if( l < r )
58 {
59 int i = l;
60 int j = r;
61 double pivot = v[(l+r)/2];
62 do
63 {
64
65 while( v[i] < pivot )
66 {
67 i++;
68 }
69 while( v[j] > pivot )
70 {
71 j--;
72 }
73
74 if( i <= j )
75 {
76 if( i < j )
77 {
78 double t1 = v[i];
79 v[i] = v[j];
80 v[j] = t1;
81 }
82 i++;
83 j--;
84 }
85
86 }
87 while( i <= j );
88 qs(l,j,v);
89 qs(i,r,v);
90
91 }
92 }
93
94
95 // quickSort
96 private static void qs(int l, int r, int v[])
97 {
98 if( l < r )
99 {
100 int i = l;
101 int j = r;
102 int pivot = v[(l+r)/2];
103 do
104 {
105
106 while( v[i] < pivot )
107 {
108 i++;
109 }
110 while( v[j] > pivot )
111 {
112 j--;
113 }
114
115 if( i <= j )
116 {
117 if( i < j )
118 {
119 int t1 = v[i];
120 v[i] = v[j];
121 v[j] = t1;
122 }
123 i++;
124 j--;
125 }
126
127 }
128 while( i <= j );
129 qs(l,j,v);
130 qs(i,r,v);
131 }
132 }
133
134
135 // quickSort
136 private static void qs(int l, int r, int[] v, Object[] objArr)
137 {
138 if( l < r ){
139 int i = l;
140 int j = r;
141
142 int pivot = v[(l+r)/2];
143
144 do{
145 while( v[i] < pivot ){
146 i++;
147 }
148 while( v[j] > pivot ){
149 j--;
150 }
151
152 if( i <= j ){
153 if( i < j ){
154 int t1 = v[i];
155 v[i] = v[j];
156 v[j] = t1;
157
158 Object tobj = objArr[i];
159 objArr[i] = objArr[j];
160 objArr[j] = tobj;
161 }
162 i++;
163 j--;
164 }
165
166 }
167 while( i <= j );
168 qs(l,j,v,objArr);
169 qs(i,r,v,objArr);
170 }
171 }
172
173
174 // quickSort
175 private static void qs(int l, int r, float[] v, Object[] objArr)
176 {
177 if( l < r ){
178 int i = l;
179 int j = r;
180
181 float pivot = v[(l+r)/2];
182
183 do{
184 while( v[i] < pivot ){
185 i++;
186 }
187 while( v[j] > pivot ){
188 j--;
189 }
190
191 if( i <= j ){
192 if( i < j ){
193 float t1 = v[i];
194 v[i] = v[j];
195 v[j] = t1;
196
197 Object tobj = objArr[i];
198 objArr[i] = objArr[j];
199 objArr[j] = tobj;
200 }
201 i++;
202 j--;
203 }
204
205 }
206 while( i <= j );
207 qs(l,j,v,objArr);
208 qs(i,r,v,objArr);
209 }
210 }
211
212
213 public static void quickSort(int[] v)
214 {
215 qs(0,v.length-1,v);
216 }
217
218 public static void quickSort(float[] v, Object[] objArr)
219 {
220 qs(0,v.length-1,v,objArr);
221 }
222
223 public static void quickSort(int[] v, Object[] objArr)
224 {
225 qs(0,v.length-1,v,objArr);
226 }
227
228 public static void quickSort(double v[])
229 {
230 qs(0,v.length-1,v);
231 }
232
233
234 public static void quickSort(double v[][])
235 {
236 qs(0,v[0].length-1,v);
237 }
238}
239
240
Note: See TracBrowser for help on using the repository browser.