快速排序的写法:
package com;
import java.util.Arrays;
public class Test02 {
public static void main(String[] args) {
int[] buf = new int[10];
// n'm'j
for (int a = 0; a < buf.length; a++) {
buf[a] = (int) (Math.random() * 100);
}
System.out.println("排序前:" + Arrays.toString(buf));
quicksort(buf);
System.out.println("排序后:" + Arrays.toString(buf));
}
public static void quicksort(int[] buf) {
quicksort(buf, 0, buf.length - 1);
}
private static void quicksort(int[] buf, int sta, int end) {
// 设定一个中间值
int temp = buf[sta];
// 定义两个坐标分布执行开头和结尾
int i = sta, j = end;
//循环按条件交换数组中的数据
while (i < j) {
while (i < j) {
if (buf[j] < temp) {
int n = buf[i];
buf[i] = buf[j];
buf[j] = n;
break;
}
j--;
}
while (i < j) {
if (buf[i] > temp) {
int n = buf[i];
buf[i] = buf[j];
buf[j] = n;
break;
}
i++;
}
}
if (i - sta > 1) {
quicksort(buf, sta, i - 1);
}
if (end - i > 1) {
quicksort(buf, i + 1, end);
}
}
}
初学者的学习笔记,请多多指教!