<span style="font-size:18px;">public class MainTest {
final static int length = 10; // 数组长度
static int[] nums = new int[length];
public static void main(String[] args) {
// 生成随机数
Random random = new Random();
for (int i = 0; i < length; i++) {
nums[i] = random.nextInt(100);
}
System.out.println("排序前:");
for (int i = 0; i < length; i++) {
System.out.print(nums[i] + " ");
}
System.out.println(); // 换行
quickSort(nums, 0, length - 1);
System.out.println("排序后:");
for (int i = 0; i < length; i++) {
System.out.print(nums[i] + " ");
}
}
private static void quickSort(int[] nums, int start, int end) {
if(start>=end){
return;
}
int i = start;
int j = end;
int key = nums[i];
boolean isEnd = true;
while (i <= j) {
System.out.println("i= " + i);
System.out.println("j= " + j);
if (isEnd) {
if (nums[j] < key) {
int temp; // 临时变量
temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
isEnd=false;
} else {
j--;
}
}else{
if(nums[i] > key){
int temp; // 临时变量
temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
isEnd=true;
}else{
i++;
}
}
}
snp(nums);
quickSort(nums, start, j-1);
quickSort(nums, i+1, end);
}
private static void snp(int[] nums) {
for (int i = 0; i < nums.length; i++) {
System.out.print(nums[i] + " ");
}
System.out.println();
}
}</span>
快速排序java版
最新推荐文章于 2024-07-17 10:35:12 发布