package com.ebiz.sort;import java.text.SimpleDateFormat;
import java.util.Date;/*** @author YHj* @create 2019-07-28 20:58* 选择排序*/
public class Choose {public static void main(String[] args) {int[] arr = new int[80000];for (int i = 0; i < 80000; i++) {arr[i] = (int) (Math.random() * 800000);}String s = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());System.out.println("排序前 = " + s);getResult(arr);String l = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());System.out.println("排序后 = " + l);}public static void getResult(int[] arr) {for (int i = 0; i < arr.length-1; i++) {int min=arr[i]; //假设为最小值int minIdex=i;  //最小值的索引for (int j = i+1; j <arr.length; j++) {if (min>arr[j]){//找到最小值以及最小值的位置min=arr[j];minIdex=j;}}//如果不是一开始的位置不进行交换  优化if (minIdex != i) {arr[minIdex]=arr[i];arr[i]=min;}}}}

待完善...

转载于:https://www.cnblogs.com/jiushixihuandaqingtian/p/11299207.html

算法之排序算法-选择排序与优化相关推荐

  1. 输入法按照选字频率排序的C语言程序算法,算法与数据结构之选择排序(C语言)...

    #include #include void SelectSort(int *a,int n);//预声明要调用的函数 int main(void) { int k; int x[]={,,,,,,, ...

  2. 算法一之简单选择排序

    一.  选择排序的思想 选择排序的基本思想是:每一趟在n-i+1(i=1,2,-n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录.基于此思想的算法主要有简单选择排序.树型选择排序和堆排序. ...

  3. 十大排序算法:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序

    冒泡排序.选择排序.插入排序.希尔排序.归并排序.快速排序.堆排序.计数排序.桶排序.基数排序的动图与源代码. 目录 关于时间复杂度 冒泡排序 选择排序 插入排序 希尔排序 归并排序 快速排序 堆排序 ...

  4. 排序算法(分类,时间复杂度)(快速排序,插入排序,希尔排序,选择排序,冒泡排序)

    1.排序算法 1.排序的分类 分为内部排序和外部排序,其中内部排序分为插入排序.选择排序.交换排序.归并排序和基数排序.插入排序包括直接插入排序和希尔排序:选择排序包括简单选择排序和堆排序:交换排序包 ...

  5. C语言——十四种内部排序算法【直接插入排序-冒泡排序-选择排序-插入排序-希尔排序-归并排序-快速排序-堆排序-折半插入排序-二分查找-路插入排序-表插入排序-简单选择排序-直接选择排序-树形选择】

    目录: 一:插入排序 A:直接插入排序 1.定义: 2.算法演示 实例1: 3.基本思想 4.排序流程图 实例1: B:希尔排序 1.定义: 2.算法演示 实例2: C:其他插入排序 a:折半插入排序 ...

  6. java 排序_Java中常见的排序算法有哪些?---选择排序

    排序相关的的基本概念 排序: 将一组杂乱无章的数据按一定的规律顺次排列起来. 数据表( data list): 它是待排序数据对象的有限集合. 排序码(key):通常数据对象有多个属性域, 即多个数据 ...

  7. java中queue排序_Java中常见的排序算法有哪些?---选择排序

    排序相关的的基本概念 排序: 将一组杂乱无章的数据按一定的规律顺次排列起来. 数据表( data list): 它是待排序数据对象的有限集合. 排序码(key):通常数据对象有多个属性域, 即多个数据 ...

  8. 数据结构—排序算法总结(插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序、合并排序、计数排序)

    *排序 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作. 稳定性 在待排序的数组中,如果出现多个相同的关键字,例如:98751555512,中出现重复的数字,在 ...

  9. 【简单排序算法】:简单选择排序、直接插入排序和冒泡排序

    [简单排序算法]:简单选择排序.直接插入排序和冒泡排序 简单选择排序: 原理:设所排序序列的记录个数为n.i取1,2,-,n-1,每次从所有n-i+1个记录(Ri,Ri+1,-,Rn)中找出最小的记录 ...

  10. 蛮力法查找有序数列c语言,算法——蛮力法之选择排序和冒泡排序c++实现

    这次实现的是蛮力法中的两个例子,选择排序法和冒泡排序法,使用的编译环境是vs2013,下面对这两个算法做一个简单介绍,然后是两个算法的c++实现代码. 选择排序法比较的范围是整个列表,每次扫描结束找出 ...

最新文章

  1. 最强的Attention函数诞生啦,带给你意想不到的巨大提升!
  2. 2021暑假实习-SSM超市积分管理系统-day10笔记
  3. feign-hystrix的使用
  4. 注意职场“十不要”,让你少奋斗30年
  5. matlab用之前的计算结果递归,[转载]Matlab正则表达式(递归、匹配上下文等)(转载)...
  6. Google文件系统(GFS)翻译学习
  7. maven-3.5.3通过eclipse打包问题(1)
  8. C语言-99乘法表-正倒三角
  9. 美图大咖-电商图片处理软件
  10. 2020安徽省程序设计省赛知识点
  11. npm install --save-dev
  12. 防关联浏览器有哪些浏览器(浏览器防关联软件分析)
  13. android钛备份功能源码,TitaniumBackup钛备份专业增捐赠版 — 安卓备份神器
  14. 关于SE54视图簇的创建和维护
  15. Java-Mybatis(二): Mybatis配置解析、resultMap结果集映射、日志、分页、注解开发、Mybatis执行流程分析
  16. android滚动广告图片素材,安卓手机宣传视频制作软件如何在视频底部添加一行滚动的广告语?视频加滚动水印...
  17. 新手怎么加入自媒体?新手入门其实很简单
  18. 计算机组成原理_实验三:主存储器原理实验
  19. 华为设备VXLAN配置举例
  20. 综述:演化遗传学发展历史简介

热门文章

  1. python tkinter button颜色变不了_tkinter多按钮颜色变化
  2. wordpress 添加小工具分类
  3. .Net (C#)委托和事件(获取多个返回值)
  4. cocos2dx libevent简介和使用
  5. [react] React16新特性有哪些?
  6. [react] 函数式组件有没有生命周期?为什么?
  7. [react] constructor和getInitialState有不同?
  8. 重学java基础第八课:硬件和冯洛伊曼系统
  9. 前端学习(3289):react hook state-hook
  10. [css] 请说下你对css对象模型(CSSOM)的理解