用JAVA实现排序算法之二:直接插入排序

news/2024/7/4 1:31:18 标签: 算法, 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个元素,排序过程中每次从无序表中取出第一个元素,将它插入到有序表中的适当位置,使之成为新的有序表,重复n-1次可完成排序过程。

把a[i]插入到a[0],a[1],...,a[i-1]之中的具体实施过程为:先把a[i]赋值给变量t,然后将t依次与a[i-1],a[i-2],...进行比较,将比t大的元素右移一个位置,直到发现某个j(0<=j<=i-1),使得a[j]<=t或j为(-1),把t赋值给a[j+1]。

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

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


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

相关文章

基于ATtiny85轻松制作一款智能手表

这是基于ATtiny85系列的简约手表系列中的第三款。该款手表通过在微型64x48 OLED显示屏上绘制模拟的手表来显示时间。它使用独立的晶振控制的低功耗RTC芯片来保持每月几秒钟的时间&#xff0c;并在不显示时间的时候将处理器和显示器置于睡眠状态&#xff0c;以便使得使用寿命超过…

JAVA程序填空题用公式求e_Java 使用对象 编程练习题

1、单词长度题目内容&#xff1a;你的程序要读入一行文本&#xff0c;其中以空格分隔为若干个单词&#xff0c;以‘.’结束。你要输出这行文本中每个单词的长度。这里的单词与语言无关&#xff0c;可以包括各种符号&#xff0c;比如“its”算一个单词&#xff0c;长度为4。注意…

STEVAL-SPIN3201电机驱动器评估板简介

STEVAL-SPIN3201评估板 内嵌STM32微控制器的高级BLDC控制器STSPIN32F0评估板 STMicroelectronics STEVAL-SPIN3201评估板是一款三相无刷直流电机驱动器。 该评估板采用了STSPIN32F0控制器和STD140N6F7 MOSFET。STEVAL-SPIN3201 为实现低压电机驱动应用提供了一个既经济实惠又…

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

本篇文章介绍直接选择排序算法的JAVA实现。 直接选择排序算法的基本思想是&#xff1a;n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果&#xff1a; ①初始状态&#xff1a;无序区为R[1..n]&#xff0c;有序区为空。 ②第1趟排序 在无序区R[1..n]中选出关键字…

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;以此基准将当前…