编程实现可以指定升序或是降序的直接选择排序算法,函数可声明为: selectSort(int[] keys,boolean asc),asc取值true(升序)、false(降序)。
时间: 2023-02-12 15:39:40 浏览: 151
选择排序算法,通过python实现的,可以正常运行
直接选择排序的基本思路是:每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。下面是用Java语言实现的代码:
```
void selectSort(int[] keys, boolean asc) {
for (int i = 0; i < keys.length - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < keys.length; j++) {
if (asc) {
// 升序
if (keys[j] < keys[minIndex]) {
minIndex = j;
}
} else {
// 降序
if (keys[j] > keys[minIndex]) {
minIndex = j;
}
}
}
if (minIndex != i) {
int temp = keys[i];
keys[i] = keys[minIndex];
keys[minIndex] = temp;
}
}
}
```
代码中的参数keys是要排序的数组,asc参数指定是升序还是降序,当asc为true时表示升序,当asc为false时表示降序。
算法的时间复杂度为O(n^2),空间复杂度为O(1)。
阅读全文