`

1.排序:插入排序法

J# 
阅读更多

对int[] sorts = { 20, 9, 4, 7, 2, 6, 8, 1 };进行排序

 

1.使用顺序表进行插入排序

 

package com.tao.test;

/**
 * 插入排序法
 * 
 */
public class TestMain {
	private int[] data;
	private int size;

	public TestMain(int length) {
		data = new int[length];
	}

	public static void main(String[] args) {
		int[] sorts = { 20, 9, 4, 7, 2, 6, 8, 1 };
		TestMain tm = new TestMain(sorts.length);
		for (int i = 0; i < sorts.length; i++) {
			tm.sortInsert(sorts[i]);
		}
	}

	public void sortInsert(int j) {
		int loc = searchLoc(j);
		for (int i = size; i > loc; i--) {
			data[i] = data[i - 1];
		}
		data[loc] = j;
		size++;
		for (int i = 0; i < size; i++) {
			System.out.print("  " + data[i]);
		}
		System.out.println();
	}

	/**
	 * 排列顺序:大->小
	 * 
	 * @param j
	 *            插件的数值
	 * @return 位置
	 */
	public int searchLoc(int j) {
		for (int i = 0; i < size; i++) {
			if (data[i] < j) {
				return i;
			}
		}
		return size;
	}

	public int[] getData() {
		return data;
	}

}

 

 

 

 2.使用链表进行插入排序

 

 

 

 

 

 

 

 

 

分享到:
评论
1 楼 0604hx 2010-06-28  
看不太懂.....

相关推荐

    c++ 7 种排序.快速排序, 归并排序,插入排序,选择排序,起泡排序,堆排序,希尔排序

    7. **希尔排序**:由Donald Shell提出的改进版本的插入排序,通过设置不同的增量将待排序的序列分割成若干子序列,分别进行直接插入排序,然后逐步减小增量,直至增量为1,完成整个序列的排序。希尔排序的时间复杂度...

    JAVA近百种算法大全

    2. 插入排序:将待排序元素逐个插入到已排序部分,保持已排序部分始终有序。 3. 选择排序:每次选择未排序部分的最小(或最大)元素,与已排序部分的第一个元素交换。 4. 快速排序:利用分治策略,选取一个基准值,...

    直接排序法,折半插入法,希尔排序法,快速排序法(c语言实现)

    1. 直接排序法(简单选择排序): 简单选择排序是一种基础的排序算法,它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。这种排序...

    c语言中的插入排序法PPT课件.pptx

    插入排序法的时间复杂度为O(n^2),空间复杂度为O(1)。 知识点二:插入排序法的实现步骤 插入排序法的实现步骤可以分为以下几个阶段: 1. 初始化待排序数组a和待插入元素x。 2. 从第一个元素开始,对每个元素a[i]...

    八大排序算法(手撕):冒泡排序、选择排序、插入排序、基数排序、堆排序、希尔排序、快速排序(单排)、归并排序

    本文将深入探讨八大经典排序算法,尤其是插入排序。 首先,我们来理解插入排序。插入排序是一种简单直观的排序算法,它的基本思想是将未排序的数据逐个插入到已排序的部分,从而逐步构建出一个完整的有序序列。插入...

    参考资料-【排序法考核工具】岗位评价中排序法的应用.zip

    本资料"参考资料-【排序法考核工具】岗位评价中排序法的应用.zip"似乎着重于将排序法应用于岗位评价,这可能是为了更系统、公正地对员工绩效或职位价值进行排序。 排序算法有很多种,如冒泡排序、插入排序、选择...

    直接插入排序法和分治法

    直接插入排序和分治法是两种基础且重要的算法,在计算机科学和编程中有着广泛的应用。直接插入排序是一种简单直观的排序算法,适用于小规模或部分有序的数据,而分治法则是一种解决复杂问题的策略,它将大问题分解为...

    C语言_插入排序法和冒泡排序法

    根据给定文件的信息,本文将深入探讨C语言中的两种经典排序方法:插入排序法与冒泡排序法。这两种方法在实际编程中应用广泛,对于理解数据结构与算法的基础概念至关重要。 ### 一、冒泡排序法 #### 1.1 基本原理 ...

    用Java实现基础数据结构,排序算法、经典算法以及leetcode刷题记录-Java-下载.zip

    2. 插入排序:将每个元素插入到已排序的序列中,适用于小规模或接近有序的数据。 3. 选择排序:每次找到未排序部分的最大/最小值,放到正确位置。 4. 快速排序:使用分治策略,以一个“基准”元素划分数组,实现平均...

    许士良常用算法程序集C语言

    3. 插入排序:将元素插入已排序部分,时间复杂度为O(n^2)。 4. 快速排序:使用分治策略,平均时间复杂度为O(nlogn)。 5. 归并排序:递归合并操作,时间复杂度为O(nlogn)。 6. 堆排序:基于完全二叉树的排序,时间...

    经典算法大全.pdf

    m元素集合的n个元素子集 71 31.Algorithm Gossip: 数字拆解 73 32.Algorithm Gossip: 得分排行 76 33.Algorithm Gossip: 选择、插入、气泡排序 78 34.Algorithm Gossip: Shell 排序法 - 改良的插入排序 ...

    排序类.zip

    2. 插入排序:将每个元素插入到已排序的部分,适合小规模或部分有序的数据。 3. 选择排序:每次找到未排序部分的最小(或最大)元素放到正确位置。 4. 快速排序:使用分治策略,通过一趟排序将待排记录分隔成独立的...

    VB基于插入法排序的例子源码.rar

    VB基于插入法排序例子的开源源码,插入法排序后,最后输入各数组数据。插入元素后,其余数组元素后移,然后将数据x插入数组指定位置,学习好本例子,有助于你了解VB中的动态数组、静态数组、键盘事件等实用技巧。...

    数据结构及算法经典算法示例

    1. 排序算法:快速排序、归并排序、冒泡排序、插入排序、选择排序等。 2. 搜索算法:二分查找、深度优先搜索、广度优先搜索等。 3. 动态规划:解决最优化问题,如斐波那契数列、背包问题、最长公共子序列等。 4. ...

    《数据结构与算法(C语言版)》教学参考模块8.docx

    排序算法可以分为稳定排序法和非稳定排序法两大类。 稳定排序法:指在排序过程中,相同的元素保持原有的顺序的算法。例如,插入排序、归并排序等。 非稳定排序法:指在排序过程中,相同的元素可能会改变顺序的算法...

    插入法排序过程演示程序

    **插入法排序(Insertion Sort)** 插入法排序是一种简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。这种排序方式适合小规模或者部分有序...

    数据结构考研试题精选及答案

    1. 分治法:将大问题分解为小问题,如归并排序、快速排序。 2. 动态规划:通过存储子问题的解来避免重复计算,如斐波那契数列、背包问题。 3. 贪心法:局部最优策略求全局最优解,如霍夫曼编码、活动选择问题。 4. ...

    常见经典排序算法(C语言)1希尔排序 二分插入法 直接插入法 带哨兵的直接排序法 冒泡排序 选择排序 快速排序 堆排序.docx

    希尔排序法的基本思想是将待排序的序列分成若干个小组,每组进行插入排序,然后逐步合并小组,直到整个序列有序。 希尔排序法的时间复杂度为 O(n log n),空间复杂度为 O(1)。希尔排序法的优点是快速稳定,缺点是...

    使用分治法的插入排序

    在这个场景中,我们讨论的是如何使用分治法的思想来实现插入排序,并通过C++语言进行编程实践。 ### 分治法原理 分治法是计算机科学中解决问题的一种策略,它将大问题分解为若干个规模较小、相互独立、与原问题形式...

Global site tag (gtag.js) - Google Analytics