java编写一个方法,利用选择排序按由小到大的顺序实现一维数组的排序,并验证方 法。与交换排序的不同在于,选择排序在每遍比较的过程中,不急于进行交换,先确定最 小元素的位置,在每遍比较完后,再将最小元素与本遍最小值该放位置的元素交换。
时间: 2024-09-26 11:07:28 浏览: 46
在Java中,你可以编写一个名为`selectionSort`的选择排序算法,其基本思路如下:
```java
public class SelectionSort {
public 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;
}
}
// 将找到的最小元素与当前位置的元素交换
if (minIndex != i) {
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
}
// 验证方法
public static void main(String[] args) {
int[] testArray = {5, 3, 8, 4, 2};
SelectionSort sorter = new SelectionSort();
sorter.selectionSort(testArray);
System.out.println("Sorted array:");
for (int num : testArray) {
System.out.print(num + " ");
}
// 验证排序是否正确
assert testArray.equals(new int[]{2, 3, 4, 5, 8});
System.out.println("\nVerification successful.");
}
}
```
在这个`selectionSort`方法中,我们首先从数组的第一个元素开始,依次找出剩余部分中的最小元素并将其放在当前元素的位置。这个过程一直持续到整个数组排序完成。
在`main`方法里,我们创建了一个测试数组,调用`selectionSort`进行排序,然后打印出排序后的数组以确认结果。最后通过`assert`语句验证数组是否按照预期从小到大排列。
阅读全文