c语言产生随机数并排序_选择排序展示(java)

(以下为百度)选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。

博客地址:http://www.coderframe.com/Info/index/id/125.html

package algorithm;/** * 时间:2019 8 24  * 作者latefly * 功能:一个选择排序算法的一个展示 *  */import java.text.SimpleDateFormat;import java.util.Date;public class SelectSort {static int counter = 0;static int arrSize = 80000;// 此处实测大概是2s-3s之间public static void main(String[] args) {// 产生随机数int arr[] = new int[arrSize];for (int i = 0; i < arrSize; i++) {arr[i] = (int) (Math.random() * 8000000);}// System.out.println(Arrays.toString(arr));Date dateStart = new Date();SimpleDateFormat format = new SimpleDateFormat("YYYY-MM-DD hh:mm:ss");String start = format.format(dateStart);System.out.println("开始时间:" + start);// 测试数组rectifySelectSort(arr);Date endStart = new Date();String end = format.format(endStart);System.out.println("结束时间:" + end);// System.out.println(Arrays.toString(arr));}public static void baseSelectSort(int arr[]) {int min;int minIndex;int counter;for (int i = 0; i < arr.length - 1; i++) {// 每次选择一个最小的然后交换顺序counter = i;min = arr[i];minIndex = i;while (counter < arr.length) {// 找到小的然后交换if (arr[counter] < min) {min = arr[counter];minIndex = counter;}counter++;}arr[minIndex] = arr[i];arr[i] = min;}}// 改进以后的算法public static void rectifySelectSort(int arr[]) {int min;int minIndex;int counter;boolean ischange = false;for (int i = 0; i < arr.length - 1; i++) {// 每次选择一个最小的然后交换顺序counter = i;min = arr[i];minIndex = i;ischange = false;while (counter < arr.length) {// 找到小的然后交换if (arr[counter] < min) {min = arr[counter];minIndex = counter;ischange = true;}counter++;}if (ischange) {arr[minIndex] = arr[i];arr[i] = min;}}}}

80000的数据测试很明显可以看到选择排序与冒泡排序的差距了

f3d2d6f9149571f5e7df13ef240a4799.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值