`

Java插入排序代码整理

阅读更多
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语言实现插入排序的示例代码: ```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插入排序算法实现: ```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实现插入排序

    插入排序是一种基础且直观的排序算法,其工作原理类似于我们日常生活中的整理扑克牌。在Java中实现插入排序,我们可以按照以下步骤进行: 1. **基本思想**:将一个记录插入到已经排好序的有序表中,从而得到一个新...

    java 冒泡法、选择法、插入法排序实现代码

    在`Insert.java`文件中,插入排序的实现可能包括: - 初始化已排序部分为第一个元素,然后逐个将后续元素与已排序部分的元素比较,并在合适位置插入。 - 每次插入一个新元素,都会导致已排序部分增加一个元素。 ...

    Java直接插入排序算法源码

    直接插入排序是一种基础且简单的排序算法,它的工作原理类似于我们日常生活中的整理扑克牌。在Java中实现这个算法,我们可以从以下几个关键知识点入手: 1. **基本思想**:直接插入排序是通过构建有序序列,对于未...

    java 排序算法 选择排序,插入排序,自顶向上合并排序,合并排序,快速排序

    插入排序同样是一种简单直观的算法,它的工作方式类似于人们打扑克牌时整理手牌的过程。基本思想是将数组分为已排序区和未排序区,每次从未排序区取出一个元素,找到其在已排序区的合适位置并插入。具体步骤如下: ...

    java版冒泡排序,插入排序,堆排序,快速排序,归并排序,希尔排序,桶排序

    希尔排序是插入排序的一种优化版本,通过设定一个增量序列,将待排序的数组按照增量分成多个子序列,对每个子序列进行插入排序,最后减小增量,直至为1,整个数组有序。这种方法减少了元素移动的次数,提高了排序...

    java-插入排序.rar

    **插入排序**是一种简单直观的排序算法,它的工作原理类似于我们日常生活中整理扑克牌的过程。在计算机科学中,插入排序通常用于小规模数据或者部分有序的数据,它的效率相对较低,但对于部分有序的数据,插入排序...

    Java实现插入排序.rar

    以下是一个基本的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 8种排序介绍及实现

    本文将介绍两种常见的排序算法:直接插入排序和希尔排序,并通过Java代码实现来帮助理解。 1. 直接插入排序(直接插入排序) 直接插入排序是一种简单的排序方法,它的工作原理类似于我们平时手动整理扑克牌。在排序...

    Java 冒泡法,选择法,插入法,快速排序法,实现代码。

    本主题将深入探讨四种常见的排序算法:冒泡排序、选择排序、插入排序和快速排序,这些算法在Java中都有相应的实现。下面,我们将详细讲解每种排序算法的工作原理,并给出Java代码实现。 1. 冒泡排序(Bubble Sort)...

    排序算法全集锦(java代码实现)

    - **直接插入排序**:类似于我们打牌时整理手上的牌的过程。对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 - **希尔排序**:希尔排序是基于插入排序的以下两点性质而提出改进方法的:(1)插入...

    数据结构中的直接插入排序

    在给定的`Sort`文件中,可能包含了实现直接插入排序的源代码,通常使用C、C++、Java或Python等编程语言。这些程序会包含一个循环结构,遍历数组并进行比较、移动和插入操作。通过阅读和理解这些代码,可以加深对直接...

    java代码-插入排序算法的改进

    在`main.java`文件中,你可以找到Java实现插入排序的代码示例。通常,它会包含一个名为`insertionSort`的函数,该函数接受一个整数数组作为参数,并通过上述逻辑进行排序。`README.txt`文件可能包含了代码的使用说明...

    插入排序算法的 java实现

    下面,我们将详细探讨插入排序算法的实现原理及其Java代码实现。 插入排序的基本思想是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。它分为两个阶段:第一阶段是构建初始...

    各种排序的java代码归总

    插入排序类似于手动整理扑克牌,通过将每个元素插入到已排序部分的正确位置来完成排序。对于小规模或近似有序的数组,插入排序效率较高。最坏情况下的时间复杂度为O(n^2)。 7. **归并排序(Merge Sort)**: 归并...

    java常见的排序算法源代码

    直接插入排序是一种简单直观的排序算法,它的工作原理类似于我们平时整理扑克牌的过程。每次取出一个元素,将其插入到已排序的序列中的正确位置,直到所有元素都排序完毕。该算法的时间复杂度在最好、最坏和平均...

    3种排序算法(快速、二路归并、插入)java

    插入排序是一种简单直观的排序算法,它的工作原理类似于我们手动整理扑克牌。将数组分为已排序和未排序两部分,每次从未排序部分取出一个元素,插入到已排序部分的正确位置。Java中实现插入排序通常使用两个嵌套...

    这是直接插入排序的代码

    在提供的压缩包文件"Sort-main"中,可能包含了实现直接插入排序的源代码,你可以通过查看代码来了解具体的实现细节,如变量定义、循环控制以及比较和插入操作的实现。这对于学习排序算法和理解其工作原理非常有帮助...

    Java各种排序算法代码

    3. **插入排序**:它的工作原理类似于手动整理扑克牌,将未排序的元素逐个插入到已排序的部分。对于小规模数据或部分有序的数据,插入排序效率较高,时间复杂度为O(n^2)。 4. **快速排序**:由C.A.R. Hoare提出的...

Global site tag (gtag.js) - Google Analytics