排序算法:选择排序_简单选择排序
2018-02-27 本文已影响5人
ADark0915
基本思想:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。
private void selectSort(int[] nums) {
for (int i = 0; i < nums.length; i++) {
int min = i;
// 每次选择出最小值的索引
for (int j = i + 1; j < nums.length; j++) {
if (nums[min]>=nums[j]){
min = j;
}
}
// 如果有最小值,就跟历史的最小值交换
if (min != i){
swap(nums, i, min);
}
}
}
/**
* @param nums
* @param a 索引
* @param b 索引
*/
private void swap(int[] nums, int a, int b) {
nums[a] = nums[a] + nums[b];
nums[b] = nums[a] - nums[b];
nums[a] = nums[a] - nums[b];
}