排序算法-选择排序 SelectSort
选择排序算法的步骤如下:
1、选择arr[0]为基准元素,比较arr[1]-arr[n],得到arr[1]-arr[n]中最小(最大)的元素arr[m],将arr[m]与arr[0]交换
2、依次将arr[1]、arr[2]...arr[n]作为基准,重复第一步的操作
总结:保存arr[0],比较arr[1]-arr[n],找到最小值,交换,后移重复

时间复杂度:
平均时间复杂度 O(n^2)
最坏时间复杂度 O(n^2)
最好时间复杂度 O(n^2)
伪代码:
int[] arr={};
for(i=0;i<arr.length-1;i++)
min=i;
minindex=arr[i]; //保存基数值
for(j=1+i;j<arr.length;j++)
比较找到最小值,交换
程序:
package Sort;
import java.util.Arrays;
public class SelectSort1 {
public static void main(String[] args) {
int[] arr = {2,-1,4,3,10,2,-6,11};
System.out.println(Arrays.toString(arr));
selectSort(arr);
System.out.println(Arrays.toString(arr));
}
public static void selectSort(int[] arr){
int minIndex;
int min;
for (int i = 0; i < arr.length -1; i++) {
minIndex = i;
min = arr[i];
for (int j = 1+i; j < arr.length; j++) {
if(min>arr[j]){
min = arr[j];
minIndex = j;
}
}
if(minIndex!=0){
arr[minIndex] = arr[i];
arr[i] = min;
}
}
}
}
PS:正处于学习阶段的一个代码小同学,一直仰望能持续写博客的大神们,希望通过博客归纳总结所学过的东西。文章基本是对学过的看过的文章或教程的个人总结,掺杂了个人理解,不对的地方欢迎各位大佬交流指教。
作者: Youngst-爱学习的小杨同学
出处:https://www.cnblogs.com/youngst/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

浙公网安备 33010602011771号