八大排序:简单选择排序
Posted 程序员C梦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了八大排序:简单选择排序相关的知识,希望对你有一定的参考价值。
public static void selectSort(int[] nums) {
// 一共进行n-1次选择交换操作
for (int i = 0; i < nums.length - 1; i++) {
// 用min来保存每一次比较得到的最小值的索引,
// 假设当前最小值的下标是i
int min = i;
// 查找要操作的最小值
for (int j = i + 1; j < nums.length; j++) {
min = nums[j] < nums[min] ? j : min;
}
// 如果i不是本次选择的最小元素,才进行交换
if (i != min) {
int temp = nums[i];
nums[i] = nums[min];
nums[min] = temp;
}
}
}
public static void selectSort2(int[] nums) {
for (int i = 0; i < nums.length / 2; i++) {
// i是本次参与选择交换操作的元素中最左边端索引,right是最右端索引,
// i的左边的元素和right的右边的元素都是已经排好序了的
int right = nums.length - i - 1;
int min = i;
int max = right;
for (int j = i + 1; j < nums.length - i; j++) {
min = nums[j] < nums[min] ? j : min;
max = nums[j] > nums[max] ? j : max;
}
if (min != i) {
int temp = nums[i];
nums[i] = nums[min];
nums[min] = temp;
}
if (max != right) {
int temp = nums[right];
nums[right] = nums[max];
nums[max] = temp;
}
}
}
|
|
|
|
|
|
|
|
|
|
以上是关于八大排序:简单选择排序的主要内容,如果未能解决你的问题,请参考以下文章