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 | |
---|
1 | package vishnu.util;
|
---|
2 |
|
---|
3 | import java.awt.*;
|
---|
4 | import java.awt.event.*;
|
---|
5 | import java.util.*;
|
---|
6 |
|
---|
7 | public 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.