选择式排序法之选择排序法实现

计算算法时间复杂度比冒泡快一点 选择排序法核心思想是,,第一次从R[0] ~R[n-1]中选择最小值然后与R[0]交换,第二次从R[1] ~R[n-1]中选取最小值与R[1]交换………第i次呢就是从R[i-1] ~R[n-1]中选取最小值,与R[i-1]元素交换;对于一个含有n个元素的数组,最多交换n-1次就得到了一个排序码从小到大的有序序列。

package com.PengRong.A;import java.util.*;/** * * @author PengRong * */{ (String[] args) { len=10000; int[] arr =new int[len]; for(int i=0; i<len; i++) { int t =(int)(Math.random()*10000); arr[i] =t; } Selection selection = new Selection(); selection.Test(); selection.Sort(arr); selection.Test(); /*for(int i=0; i<arr.length; i++) { System.out.println(“arr[” +i+ “]=”+arr[i]); }*/ }}/** * @功能:选择排序实现; * 选择排序的思想是一次次将最小值放到前面的有序序列 * @author PengRong * */class Selection{ /** * @author PengRong * @功能:用于计算当前的系统时间 */ () { Calendar cal =Calendar.getInstance(); System.out.println(cal.getTime()); } (int[] arr) { minIndex = (int j=0; j<arr.length-1; j++) { //每趟选择排序中默认第一个元素是最小的 min = arr[j]; minIndex = j; //内层循环找到这趟的最小值min for(int k =j+1; k<arr.length; k++) {if(min > arr[k]){min = arr[k];minIndex = k;}} //如果找到了最小值与默认最小值不一致,交换arr[j]与arr[minIndex]的数值 if(minIndex != j) {temp = arr[j];arr[j] = arr[minIndex];arr[minIndex] = temp; } } }}

该历程实现了对选择排序系统时间的显示,可以看到当参数数据在 int len=10000; 一万级别时候算法是非常快的,系统时间看不出有流失

当int len =80000;用了8s

当int len =100000;用了13s

一个能从别人的观念来看事情,能了解别人心灵活动的人,永远不必为自己的前途担心。

选择式排序法之选择排序法实现

相关文章:

你感兴趣的文章:

标签云: