JAVA编写一个函数,给定一个int型数组,实现插入排序,快速排序算法
时间: 2024-10-24 11:15:22 浏览: 24
当然可以。在Java中,我们可以分别编写插入排序和快速排序算法。
1. **插入排序** (Insertion Sort):
```java
public class InsertionSort {
public static void insertionSort(int[] arr) {
for (int i = 1; i < arr.length; i++) {
int key = arr[i];
int j = i - 1;
// 将大于key的元素向右移动
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = key;
}
}
public static void main(String[] args) {
int[] array = {9, 5, 2, 7, 1};
insertionSort(array);
for (int num : array) {
System.out.print(num + " ");
}
}
}
```
2. **快速排序** (Quick Sort):
```java
public class QuickSort {
public static void quickSort(int[] arr, int low, int high) {
if (low < high) {
int pivotIndex = partition(arr, low, high);
quickSort(arr, low, pivotIndex - 1); // 对左半部分递归排序
quickSort(arr, pivotIndex + 1, high); // 对右半部分递归排序
}
}
private static int partition(int[] arr, int low, int high) {
int pivot = arr[high]; // 最后一个元素作为基准
int i = low - 1;
for (int j = low; j < high; j++) {
if (arr[j] <= pivot) {
i++;
swap(arr, i, j);
}
}
swap(arr, i + 1, high);
return i + 1;
}
private static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
public static void main(String[] args) {
int[] array = {9, 5, 2, 7, 1};
quickSort(array, 0, array.length - 1);
for (int num : array) {
System.out.print(num + " ");
}
}
}
```
这两个函数分别实现了插入排序和快速排序的基本思想。你可以根据需要选择其中一个来使用。
阅读全文