package boke.sort;
/**
* 插入排序
*
* @since jdk1.5及其以上
* @author 毛正吉
* @version 1.0
* @date 2010.05.24
*
*/
public class InsertSort {
/**
* @param args
*/
public static void main(String[] args) {
int maxSize = 100;
InsertSort bs = new InsertSort(maxSize);
bs.insert(77);
bs.insert(66);
bs.insert(22);
bs.insert(99);
bs.insert(85);
bs.insert(37);
bs.insert(75);
bs.insert(64);
bs.insert(15);
bs.insert(35);
bs.output(); // 原始输出
bs.insertSort(); // 排序
bs.output(); // 排序输出
}
private long[] a; // 整型数据容器
private int nElems; // 元素个数
/**
* 构造方法
*
* @param maxSize
*/
public InsertSort(int maxSize) {
a = new long[maxSize];
nElems = 0;
}
/**
* 容器放入数据
*
* @param value
*/
public void insert(long value) {
a[nElems++] = value;
}
/**
* 输出容器数据
*/
public void output() {
for (int j = 0; j < nElems; j++) {
System.out.print(a[j] + " ");
}
System.out.println("");
}
/**
* 插入排序
*/
public void insertSort() {
int out, in;
for (out = 1; out < nElems; out++) {
long temp = a[out];
in = out;
while (in > 0 && a[in-1] >= temp) {
a[in] = a[in - 1];
--in;
}
a[in] = temp;
}
}
}
分享到:
相关推荐
下面是一个Java语言实现插入排序的示例代码: ```java public class InsertionSort { public static void sort(int[] arr) { int n = arr.length; for (int i = 1; i ; i++) { int key = arr[i]; int j = i - ...
以下是一个简单的Java插入排序算法实现: ```java public class InsertionSort { public static void insertionSort(int[] array) { for (int i = 1; i ; i++) { int key = array[i]; int j = i - 1; // 将比...
插入排序是一种基础且直观的排序算法,其工作原理类似于我们日常生活中的整理扑克牌。在Java中实现插入排序,我们可以按照以下步骤进行: 1. **基本思想**:将一个记录插入到已经排好序的有序表中,从而得到一个新...
在`Insert.java`文件中,插入排序的实现可能包括: - 初始化已排序部分为第一个元素,然后逐个将后续元素与已排序部分的元素比较,并在合适位置插入。 - 每次插入一个新元素,都会导致已排序部分增加一个元素。 ...
直接插入排序是一种基础且简单的排序算法,它的工作原理类似于我们日常生活中的整理扑克牌。在Java中实现这个算法,我们可以从以下几个关键知识点入手: 1. **基本思想**:直接插入排序是通过构建有序序列,对于未...
插入排序同样是一种简单直观的算法,它的工作方式类似于人们打扑克牌时整理手牌的过程。基本思想是将数组分为已排序区和未排序区,每次从未排序区取出一个元素,找到其在已排序区的合适位置并插入。具体步骤如下: ...
希尔排序是插入排序的一种优化版本,通过设定一个增量序列,将待排序的数组按照增量分成多个子序列,对每个子序列进行插入排序,最后减小增量,直至为1,整个数组有序。这种方法减少了元素移动的次数,提高了排序...
**插入排序**是一种简单直观的排序算法,它的工作原理类似于我们日常生活中整理扑克牌的过程。在计算机科学中,插入排序通常用于小规模数据或者部分有序的数据,它的效率相对较低,但对于部分有序的数据,插入排序...
以下是一个基本的Java插入排序算法实现示例: ```java public class InsertionSort { public static void sort(int[] array) { for (int i = 1; i ; i++) { int key = array[i]; int j = i - 1; // 将大于key...
本文将介绍两种常见的排序算法:直接插入排序和希尔排序,并通过Java代码实现来帮助理解。 1. 直接插入排序(直接插入排序) 直接插入排序是一种简单的排序方法,它的工作原理类似于我们平时手动整理扑克牌。在排序...
本主题将深入探讨四种常见的排序算法:冒泡排序、选择排序、插入排序和快速排序,这些算法在Java中都有相应的实现。下面,我们将详细讲解每种排序算法的工作原理,并给出Java代码实现。 1. 冒泡排序(Bubble Sort)...
- **直接插入排序**:类似于我们打牌时整理手上的牌的过程。对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 - **希尔排序**:希尔排序是基于插入排序的以下两点性质而提出改进方法的:(1)插入...
在给定的`Sort`文件中,可能包含了实现直接插入排序的源代码,通常使用C、C++、Java或Python等编程语言。这些程序会包含一个循环结构,遍历数组并进行比较、移动和插入操作。通过阅读和理解这些代码,可以加深对直接...
在`main.java`文件中,你可以找到Java实现插入排序的代码示例。通常,它会包含一个名为`insertionSort`的函数,该函数接受一个整数数组作为参数,并通过上述逻辑进行排序。`README.txt`文件可能包含了代码的使用说明...
下面,我们将详细探讨插入排序算法的实现原理及其Java代码实现。 插入排序的基本思想是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。它分为两个阶段:第一阶段是构建初始...
插入排序类似于手动整理扑克牌,通过将每个元素插入到已排序部分的正确位置来完成排序。对于小规模或近似有序的数组,插入排序效率较高。最坏情况下的时间复杂度为O(n^2)。 7. **归并排序(Merge Sort)**: 归并...
直接插入排序是一种简单直观的排序算法,它的工作原理类似于我们平时整理扑克牌的过程。每次取出一个元素,将其插入到已排序的序列中的正确位置,直到所有元素都排序完毕。该算法的时间复杂度在最好、最坏和平均...
插入排序是一种简单直观的排序算法,它的工作原理类似于我们手动整理扑克牌。将数组分为已排序和未排序两部分,每次从未排序部分取出一个元素,插入到已排序部分的正确位置。Java中实现插入排序通常使用两个嵌套...
在提供的压缩包文件"Sort-main"中,可能包含了实现直接插入排序的源代码,你可以通过查看代码来了解具体的实现细节,如变量定义、循环控制以及比较和插入操作的实现。这对于学习排序算法和理解其工作原理非常有帮助...
3. **插入排序**:它的工作原理类似于手动整理扑克牌,将未排序的元素逐个插入到已排序的部分。对于小规模数据或部分有序的数据,插入排序效率较高,时间复杂度为O(n^2)。 4. **快速排序**:由C.A.R. Hoare提出的...