java编写程序实现对数组排序,{19,39,23,67,45}可从小到大或从大到小
时间: 2023-09-15 11:18:42 浏览: 68
java小练习,Java练习小程序,Java必用
好的,下面是Java语言实现对数组排序的代码,同样提供冒泡排序和快速排序两种方法。
1. 冒泡排序
从小到大排序的冒泡排序代码如下:
```java
public static void bubbleSortAsc(int[] arr) {
int n = arr.length;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n-i-1; j++) {
if (arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
```
从大到小排序的冒泡排序代码如下:
```java
public static void bubbleSortDesc(int[] arr) {
int n = arr.length;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n-i-1; j++) {
if (arr[j] < arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
```
2. 快速排序
从小到大排序的快速排序代码如下:
```java
public static void quickSortAsc(int[] arr, int left, int right) {
if (left >= right) return;
int pivot = arr[left];
int i = left, j = right;
while (i < j) {
while (i < j && arr[j] >= pivot) j--;
if (i < j) arr[i++] = arr[j];
while (i < j && arr[i] < pivot) i++;
if (i < j) arr[j--] = arr[i];
}
arr[i] = pivot;
quickSortAsc(arr, left, i-1);
quickSortAsc(arr, i+1, right);
}
```
从大到小排序的快速排序代码如下:
```java
public static void quickSortDesc(int[] arr, int left, int right) {
if (left >= right) return;
int pivot = arr[left];
int i = left, j = right;
while (i < j) {
while (i < j && arr[j] <= pivot) j--;
if (i < j) arr[i++] = arr[j];
while (i < j && arr[i] > pivot) i++;
if (i < j) arr[j--] = arr[i];
}
arr[i] = pivot;
quickSortDesc(arr, left, i-1);
quickSortDesc(arr, i+1, right);
}
```
你可以调用这些函数来对数组进行排序。例如,对于数组`{19, 39, 23, 67, 45}`,你可以使用以下代码进行排序:
```java
int[] arr = {19, 39, 23, 67, 45};
// 从小到大排序
bubbleSortAsc(arr);
System.out.println("从小到大排序结果:" + Arrays.toString(arr));
// 从大到小排序
quickSortDesc(arr, 0, arr.length-1);
System.out.println("从大到小排序结果:" + Arrays.toString(arr));
```
输出结果如下:
```
从小到大排序结果:[19, 23, 39, 45, 67]
从大到小排序结果:[67, 45, 39, 23, 19]
```
阅读全文