插入排序(JAVA实现)
思想:
插入排序是在部分数据有序的情况下,使用out标记第一个无序的数据,将其提取保存到一个中间变量temp中去,使用in标记空位置,依次比较temp中的值 与in-1的值,如果in-1 的值大于temp的值,则后移,直到遇到第一个比temp小的值,在其下一个位置插入。
源码如下所示:
package org.iljava.datastructures;
/**
* @author Xiaolong_Long
*
*/
public class InsertionSort {
public static void main(String[] args) {
int values[] = { 2,12,8,7,5,11,26,10 };
System.out.println("未执行插入排序前的结果依次输出为:");
for (int i : values) {
System.out.print(i+"\t");
}
System.out.println();
int in,out;
for (out = 1; out < values.length; out++) {
int temp = values[out]; //使用out标记第一个无序的数据
in = out;
while (in>0&&values[in-1]>temp) {
values[in]=values[in-1];
--in;
}
values[in]=temp;
}
System.out.println();
System.out.println("执行插入排序后的结果依次输出为:");
for (int i : values) {
System.out.print(i+"\t");
}
}
}
结果输出如下所示:
未执行插入排序前的结果依次输出为:
2 12 8 7 5 11 26 10
执行插入排序后的结果依次输出为:
2 5 7 8 10 11 12 26
分享到:
相关推荐
在Java中实现插入排序,主要涉及以下几个关键步骤: 1. **初始化**:创建一个方法,如`public static void insertionSort(int[] arr)`,接收一个整数数组作为参数。 2. **外层循环**:遍历数组,从第二个元素...
在Java中实现插入排序,主要涉及数组操作和循环控制,我们可以从以下几个方面来理解这个过程。 1. **基本概念** 插入排序在实际操作中类似于打扑克牌,每拿到一张新牌(数组中的元素),就将其插入到已排序的序列...
直接插入排序 java实现~你值得拥有~
### 插入排序Java代码详解 #### 一、插入排序简介 插入排序是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,...
JAVA实现插入排序,简单演示
本文将详细讲解插入排序的概念、原理,并提供一个Java语言的实现示例。 插入排序是一种基本的排序算法,它的工作原理类似于我们平时整理扑克牌的过程。想象一下,你有一堆未排序的牌,每次取出一张牌,将其插入到已...
用java实现插入排序InsertSort 用java实现插入排序InsertSort用 java实现插入排序InsertSort
3. **Java实现**: - 我们可以使用一个for循环来遍历数组中的元素,外层循环控制未排序部分的大小,内层循环用于找到待插入元素的正确位置。 - 为了减少交换操作,我们可以使用两个指针,一个指向待插入元素,另一...
在Java中实现插入排序,我们可以创建一个名为`insertionSort`的方法,接受一个整数数组作为参数。这个方法通过两个嵌套的循环来完成排序。外层循环遍历数组中的每个元素,内层循环则用于找到当前元素的正确位置并将...
这里我们将深入探讨两种常见的排序算法:插入排序(Insertion Sort)和归并排序(Merge Sort),它们都是在Java环境下实现的。 **插入排序**是一种简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序...
快速排序和插入排序是两种广泛使用的排序算法,它们在计算机科学和编程中有着重要的地位,尤其是在数据处理和算法分析方面。下面将详细讲解这两种排序算法的原理、Java实现及其特点。 **快速排序** 快速排序是一种...
本篇文章将详细讲解标题中提到的六种常见排序算法的Java实现。 1. **冒泡排序**:冒泡排序是最基础的排序算法之一,它通过不断交换相邻的逆序元素来逐渐将较大的元素“浮”到数组的前端。在Java中,冒泡排序的基本...
3. **Java实现**:在Java中,我们通常会使用一个for循环来遍历未排序部分,然后在一个while循环中找到插入位置。为了减少元素的移动次数,可以使用一个临时变量存储待插入的元素,然后在找到正确位置时,从后向前...
至于提供的文件`Sort_最新.java`,这可能是包含快速排序和插入排序Java实现的源代码文件。通过阅读和理解这段代码,你可以更深入地了解这两种排序方法的具体实现,并可能学习到一些编程技巧和最佳实践。 总之,快速...
下面我们将详细探讨Java实现的直接插入排序算法: 1. **算法步骤** - 初始化:设置一个空的有序序列,将第一个元素视为已排序。 - 遍历:从第二个元素开始遍历数组,将其称为当前元素。 - 比较:将当前元素与已...
##### 直接插入排序Java实现示例 ```java public class InsertSortTest { public static int count = 0; public static void main(String[] args) { int[] data = new int[]{5, 3, 6, 2, 1, 9, 4, 8, 7}; ...
本文将详细讨论两种常见的简单排序算法:冒泡排序和直接插入排序,它们都是基于比较的内部排序算法,并且在Java语言中实现。 **冒泡排序(Bubble Sort)** 冒泡排序是一种基础的排序算法,其基本思想是通过重复...
在`Insert.java`文件中,插入排序的实现可能包括: - 初始化已排序部分为第一个元素,然后逐个将后续元素与已排序部分的元素比较,并在合适位置插入。 - 每次插入一个新元素,都会导致已排序部分增加一个元素。 ...
插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。插入排序的时间复杂度在最好情况(已排序)下...
`Algorithm.java`文件可能包含了这些排序算法的Java实现代码,而`常见排序算法的实现与性能比较.doc`文档则可能详细比较了这些算法的性能和适用场景。`readme.txt`文件可能是对整个项目的简要说明,包括如何运行和...