标签:长度 i++ 时间复杂度 记录 oid ble sys java 语言
直接选择排序也称简单选择排序,是一种相对简单的排序算法,它的基本思想是:从一列数中找出最小的,和第一个交换;剩下的重新找出最小的,和这列数的第二个交换,......一直进行n-1次比较之后,该数列已经为有序数列了。
例如:已知一组无序数列:6 3 5 1 4 2 9
第一次:[6 3 5 1 4 2 9] 最小数为:1
第二次:1 [3 5 6 4 2 9] 最小数为:2
第三次:1 2 [5 6 4 3 9] 最小数为:3
第四次:1 2 3 [6 4 5 9] 最小数为:4
第五次:1 2 3 4 [6 5 9] 最小数为:5
第六次:1 2 3 4 5 [6 9] 最小数为:6
第七次:1 2 3 4 5 6 [9] 已经为有序数列了。
代码实现(Java语言):
import java.math.BigDecimal; import java.math.RoundingMode; import java.util.Scanner; public class Main{ // public final static double pi = 3.1415927; public static void main(String[] args) { Scanner sin=new Scanner(System.in); while(sin.hasNextInt()){ int len = sin.nextInt();//输入数组的长度 int array[] = new int[100]; for(int i=0; i<len; i++){ array[i] = sin.nextInt();//以此输入无序数组 } S_sort(array, len);//直接插入排序 display(array, len);//显示排序之后的有序数列 } } public static void display(int array[],int len){ for(int i=0; i<len; i++){ System.out.print(array[i]+" "); } } public static void S_sort(int array[],int len){ for(int i=0; i<len; i++){ int min = i; for(int j=i+1; j<len; j++){ if(array[j]<array[min]){ min = j; } } int temp = array[min]; array[min] = array[i]; array[i] = temp; } } }
效率分析:
标签:长度 i++ 时间复杂度 记录 oid ble sys java 语言
原文地址:http://www.cnblogs.com/hey-man/p/6891680.html