(一)Java最简单选择排序算法
不知不觉,今年已经大半年 时间就过去了,很多公司秋招已经开始了,然后数据结构 与算法就是公司常拿来考察同学们的基础,今天我们一起来学习Java中最简单的算法,叫选择排序算法。
正文
选择排序算法,是一种简单直观的排序算法,它的思路是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。但是注意选择排序它是不稳定的排序方法的。
代码演示
package com.mark.algorithm;
import java.util.Arrays;
/**
* @Author MarkJava
* @Date 2020/7/15 13:44
**/
public class SelectionSort4 {
public static void sort(int[] arr){
for (int i = 0; i < arr.length; i++){
int minIndex = i;
int min = arr[i];
for (int j = i+1; j < arr.length; j++){
if (min < arr[j]){
min = arr[j];
minIndex = j;
}
}
if (minIndex != i){
arr[minIndex] = arr[i];
arr[i] = min;
}
}
}
public static void main(String[] args) {
int[] arr = {9,8,7,6,3,4,5};
sort(arr);
System.out.println(Arrays.toString(arr));
}
}
时间复杂度
选择排序的时间复杂度为 O(n^2),第一次需要检查n个元素,随后检查的元素数依次为n - 1, n – 2, …, 2和1。所以说平均每次检查的元素数为1/2 * n, 所以运行时间也就是为 n * 1/2 * n。简单地写作 O(n^2)。