1.递归排序
例如:打印某个磁盘的所有文件
private static void listfiles(File file) {
// 打印路径
System.out.println(file.getAbsolutePath());
try {
// 如果是文件夹 打印所以文件
if (file.isDirectory()) {
File[] files = file.listFiles();
for (File f : files) {
if (f.isFile()) {
System.out.println(f.getAbsolutePath());
} else if (f.isDirectory()) {
listfiles(f);
}
}
}
} catch (Exception e) {
// TODO: handle exception
}
}
2.冒泡排序
public class Java05 {
public static void main(String[] args) {
int[] nums = { 10, 30, 50, 20, 40, 60, 70, 80, 90 };
System.out.println(Arrays.toString(nums));
bubbleSort(nums);
System.out.println(Arrays.toString(nums));
}
private static void bubbleSort(int[] nums) {
// 1.把第1个数拿出来,和后面的所有数比较,比后面的大就叫唤位置
// 2.把第2个数拿出来,和后面的所有数比较,比后面的大就叫唤位置
// 3.把第n-1个数拿出来,和后面的所有数比较,比后面的大就叫唤位置
// Arrays.sort(nums);
for (int i = 0; i < nums.length - 1; i++) {
for (int j = i + 1; j < nums.length; j++) {
if (nums[i] > nums[j]) {
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
}
}
private static void printNums(int[] nums) {
for (int num : nums) {
System.out.print(num + " ");
}
System.out.println();
}
}
3.水桶排序
public static void main(String[] args) {
// 水桶排序
// 假设所有的数字在[0-100)之间
int[] nums = { 2, 5, 12, 5, 7, 8, 4, 80 };
// 建水桶
int[] bucket = new int[100];
for (int num : nums) {
bucket[num]++;
}
// 装回去
int index = 0;
for (int i = 0; i < bucket.length; i++) {
for (int j = 0; j < bucket[i]; j++) {
nums[index++] = i;
}
}
// 打印
System.out.println(Arrays.toString(nums));
}