使用典型排序算法(冒泡排序、插入排序和选择排序,3选2),对数组int[] nums = {10,4,56,32,78,-5,1,40,99,63}进行升序和降序排序,直接将nums带入
时间: 2024-10-23 10:04:37 浏览: 25
好的,我们可以通过三个常见的排序算法——冒泡排序(Bubble Sort)、插入排序(Insertion Sort)和选择排序(Selection Sort),来对给定的整数数组 `nums` 进行升序和降序排列。
首先,让我们定义这些排序算法:
1. 冒泡排序(Ascending and Descending Bubble Sort)
2. 插入排序(Ascending and Descending Insertion Sort)
3. 选择排序(Ascending and Descending Selection Sort)
下面是用Java编写的示例代码,分别实现了这些排序算法:
```java
public class SortingAlgorithms {
// 升序排序
public static void bubbleSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
// 交换元素
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
public static void bubbleSortDesc(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] < arr[j + 1]) {
// 交换元素
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
// 插入排序
public static void insertionSort(int[] arr) {
for (int i = 1; i < arr.length; i++) {
int key = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j = j - 1;
}
arr[j + 1] = key;
}
}
public static void insertionSortDesc(int[] arr) {
for (int i = 1; i < arr.length; i++) {
int key = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] < key) {
arr[j + 1] = arr[j];
j = j - 1;
}
arr[j + 1] = key;
}
}
// 选择排序
public static void selectionSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < arr.length; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
// 交换最小值
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
public static void selectionSortDesc(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
int maxIndex = i;
for (int j = i + 1; j < arr.length; j++) {
if (arr[j] > arr[maxIndex]) {
maxIndex = j;
}
}
// 交换最大值
int temp = arr[i];
arr[i] = arr[maxIndex];
arr[maxIndex] = temp;
}
}
// 使用以上方法对数组进行排序
public static void main(String[] args) {
int[] nums = {10, 4, 56, 32, 78, -5, 1, 40, 99, 63};
System.out.println("Ascending:");
bubbleSort(nums);
insertionSort(nums);
selectionSort(nums);
System.out.println(Arrays.toString(nums));
System.out.println("\nDescending:");
bubbleSortDesc(nums);
insertionSortDesc(nums);
selectionSortDesc(nums);
System.out.println(Arrays.toString(nums));
}
}
```
运行这段代码后,输出将是升序和降序排列后的数组。
阅读全文