选择排序基本原理与Java实现

选择排序—简单选择排序

基本思想

选择排序的思想类似于冒泡排序,都是在一次排序后把最小的元素放到最前面。但是过程不同,冒泡排序是通过相邻的比较和交换。而选择排序是通过对整体的选择。比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,对剩下的序列一次进行选择和交换,最终就会得到一个有序序列。选择排序只有在确定了最小数的前提下才进行交换,大大减少了交换的次数。选择排序的时间复杂度为O(n^2)。

动图演示:


(图片来自于网络)

Java算法实现:

import java.util.Arrays;
public class Xuanze {
	 public static void selectSort(int[] numbers)
	    {
	    int size = numbers.length; //数组长度
	    int temp = 0 ; //中间变量
	    
	    for(int i = 0 ; i < size ; i++)
	    {
	        int k = i;   //初始位置
	        //选择出应该在第i个位置的数
	        for(int j = size -1 ; j > i ; j--)
	        {
	        if(numbers[j] < numbers[k]) // 寻找最小的数
	        {
	            k = j; // 将最小数的索引保存
	        }
	        }
	        //交换两个数
	        temp = numbers[i];
	        numbers[i] = numbers[k];
	        numbers[k] = temp;
	    }
	    }
	 public static void main(String[] args) {
	        int a[] = { 49,38,65,97,76,13,27,49 };
	        selectSort(a);
	        System.out.println(Arrays.toString(a));
	    }
}
输出:[13, 27, 38, 49, 49, 65, 76, 97]



猜你喜欢

转载自blog.csdn.net/kass114/article/details/80266230