用JAVA实现排序算法之三:直接选择排序

news/2024/7/4 1:10:40 标签: 算法, java, integer, string, class
class="baidu_pl">
class="article_content clearfix">
class="htmledit_views">

    本篇文章介绍直接选择排序class="tags" href="/tags/SuanFa.html" title=算法>算法的JAVA实现。

    直接选择排序class="tags" href="/tags/SuanFa.html" title=算法>算法的基本思想是:n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果:

        ①初始状态:无序区为R[1..n],有序区为空。

        ②第1趟排序

        在无序区R[1..n]中选出关键字最小的记录R[k],将它与无序区的第1个记录R[1]交换,使R[1..1]和R[2..n]分别变为记录个数增加1个的新有序区和记录个数减少1个的新无序区。

        ……

        ③第i趟排序

        第i趟排序开始时,当前有序区和无序区分别为R[1..i-1]和R[i..n](1≤i≤n-1)。该趟排序从当前无序区中选出关键字最小的记录R[k],将它与无序区的第1个记录R[i]交换,使R[1..i]和R[i+1..n]分别变为记录个数增加1个的新有序区和记录个数减少1个的新无序区。

        这样,n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果。

    以下是直接选择排序class="tags" href="/tags/SuanFa.html" title=算法>算法的JAVA代码实现:

package cn.simon.sort; public class SelectSort { public static <T extends Comparable<? super T>> void selectSort(T[] array) { for (int i = 0; i <= array.length - 2; i++) { int lowestIndex = i; for (int j = array.length - 1; j > i; j--) { if (array[j].compareTo(array[lowestIndex]) < 0) { lowestIndex = j; } } T temp = array[i]; array[i] = array[lowestIndex]; array[lowestIndex] = temp; } } public static void main(String[] args) { Integer[] testArray = {23, 25, 12, 42, 35}; SelectSort.selectSort(testArray); System.out.println("The result is:"); for (Integer item : testArray) { System.out.print(item); System.out.print(' '); } } } 


http://www.niftyadmin.cn/n/1863336.html

相关文章

SAM E54 Xplained Pro评估套件简介

SAM E54 Xplained Pro评估套件&#xff08;ATSAME54-XPRO&#xff09; 官网链接&#xff1a;https://www.microchip.com/DevelopmentTools/ProductDetails.aspx?PartNOATSAME54-XPRO SAM E54 Xplained Pro评估套件是用于评估ATSAME54P20A微控制器的硬件开发平台。由Atmel Stu…

使用DHT11制作一个Arduino温度数据记录仪

作为工程师/开发人员&#xff0c;我们总是会依靠收集的数据来设计或改进系统。记录数据并进行分析是大多数行业的常见做法&#xff0c;在这里我们将制作一个Arduino数据记录仪项目&#xff0c;通过该项目我们将学习如何在一段特定时间间隔内记录数据。我们将使用一个Arduino开发…

new语句java_有 Java 语句“int[] a,b=new int[3];”,则说法正确的是

【单选题】下列程序的输出结果为_________ 。【单选题】给定如下程序,编译运行,错误出现在_________ 。【简答题】【单选题】给定如下 Java 代码,编译运行时,结果是_________ 。【单选题】下面程序代码段执行后输出结果是_________ 。【单选题】下面 正确 的表达式是 ________ …

用JAVA实现排序算法之四:快速排序

本篇文章介绍快速排序算法的JAVA实现。 快速排序算法的基本思想是&#xff1a;设当前待排序的无序区为R[low..high]&#xff0c;利用分治法可将快速排序的基本思想描述为&#xff1a; ①分解&#xff1a;在R[low..high]中任选一个记录作为基准(Pivot)&#xff0c;以此基准将当前…

用JAVA实现排序算法之五:希尔排序

本篇文章介绍希尔排序算法的JAVA实现。 希尔排序算法的基本思想是&#xff1a;先取一个小于n的整数d1作为第一个增量&#xff0c;把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插人排序&#xff1b;然后&#xff0c;取第二个增量d2…

基于ATtiny85微控制器制作一款四通道温度计

本文主要介绍了一款基于ATtiny85微控制器的四通道温度计&#xff0c;该温度计可以同时监测四个温度传感器的温度&#xff0c;并且实时在小型128x32 OLED液晶屏上进行显示。 该温度计可以用于任何需要监控多个温度点的应用中&#xff0c;例如控制温室、检查功率放大器中的输出晶…

java token抛异常_java – Spring Oauth2 – 自定义异常处理程序

在Spring Security基于Oauth2的身份验证中,当客户端发送需要刷新的访问令牌时,DefaultTokenServices类会抛出InvalidTokenException(参见第235行)&#xff1a;发生这种情况时的输出是这样的&#xff1a;{"error":"invalid_token","error_description&…

“代码之丑”系列文章转载

这几天按照惯例上InfoQ看一些新动态&#xff0c;拜读了其中的“代码之丑”的系列文章&#xff0c;颇有感触&#xff0c;特别将该系列的原文进行转载&#xff0c;在贴出原文之前&#xff0c;先了解一下作者的背景。 作者简介&#xff1a;郑晔&#xff0c;ThoughtWorks公司咨询师…