对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.使用链表进行插入排序
分享到:
相关推荐
7. **希尔排序**:由Donald Shell提出的改进版本的插入排序,通过设置不同的增量将待排序的序列分割成若干子序列,分别进行直接插入排序,然后逐步减小增量,直至增量为1,完成整个序列的排序。希尔排序的时间复杂度...
2. 插入排序:将待排序元素逐个插入到已排序部分,保持已排序部分始终有序。 3. 选择排序:每次选择未排序部分的最小(或最大)元素,与已排序部分的第一个元素交换。 4. 快速排序:利用分治策略,选取一个基准值,...
1. 直接排序法(简单选择排序): 简单选择排序是一种基础的排序算法,它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。这种排序...
插入排序法的时间复杂度为O(n^2),空间复杂度为O(1)。 知识点二:插入排序法的实现步骤 插入排序法的实现步骤可以分为以下几个阶段: 1. 初始化待排序数组a和待插入元素x。 2. 从第一个元素开始,对每个元素a[i]...
本文将深入探讨八大经典排序算法,尤其是插入排序。 首先,我们来理解插入排序。插入排序是一种简单直观的排序算法,它的基本思想是将未排序的数据逐个插入到已排序的部分,从而逐步构建出一个完整的有序序列。插入...
本资料"参考资料-【排序法考核工具】岗位评价中排序法的应用.zip"似乎着重于将排序法应用于岗位评价,这可能是为了更系统、公正地对员工绩效或职位价值进行排序。 排序算法有很多种,如冒泡排序、插入排序、选择...
直接插入排序和分治法是两种基础且重要的算法,在计算机科学和编程中有着广泛的应用。直接插入排序是一种简单直观的排序算法,适用于小规模或部分有序的数据,而分治法则是一种解决复杂问题的策略,它将大问题分解为...
根据给定文件的信息,本文将深入探讨C语言中的两种经典排序方法:插入排序法与冒泡排序法。这两种方法在实际编程中应用广泛,对于理解数据结构与算法的基础概念至关重要。 ### 一、冒泡排序法 #### 1.1 基本原理 ...
2. 插入排序:将每个元素插入到已排序的序列中,适用于小规模或接近有序的数据。 3. 选择排序:每次找到未排序部分的最大/最小值,放到正确位置。 4. 快速排序:使用分治策略,以一个“基准”元素划分数组,实现平均...
3. 插入排序:将元素插入已排序部分,时间复杂度为O(n^2)。 4. 快速排序:使用分治策略,平均时间复杂度为O(nlogn)。 5. 归并排序:递归合并操作,时间复杂度为O(nlogn)。 6. 堆排序:基于完全二叉树的排序,时间...
m元素集合的n个元素子集 71 31.Algorithm Gossip: 数字拆解 73 32.Algorithm Gossip: 得分排行 76 33.Algorithm Gossip: 选择、插入、气泡排序 78 34.Algorithm Gossip: Shell 排序法 - 改良的插入排序 ...
2. 插入排序:将每个元素插入到已排序的部分,适合小规模或部分有序的数据。 3. 选择排序:每次找到未排序部分的最小(或最大)元素放到正确位置。 4. 快速排序:使用分治策略,通过一趟排序将待排记录分隔成独立的...
VB基于插入法排序例子的开源源码,插入法排序后,最后输入各数组数据。插入元素后,其余数组元素后移,然后将数据x插入数组指定位置,学习好本例子,有助于你了解VB中的动态数组、静态数组、键盘事件等实用技巧。...
1. 排序算法:快速排序、归并排序、冒泡排序、插入排序、选择排序等。 2. 搜索算法:二分查找、深度优先搜索、广度优先搜索等。 3. 动态规划:解决最优化问题,如斐波那契数列、背包问题、最长公共子序列等。 4. ...
排序算法可以分为稳定排序法和非稳定排序法两大类。 稳定排序法:指在排序过程中,相同的元素保持原有的顺序的算法。例如,插入排序、归并排序等。 非稳定排序法:指在排序过程中,相同的元素可能会改变顺序的算法...
**插入法排序(Insertion Sort)** 插入法排序是一种简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。这种排序方式适合小规模或者部分有序...
1. 分治法:将大问题分解为小问题,如归并排序、快速排序。 2. 动态规划:通过存储子问题的解来避免重复计算,如斐波那契数列、背包问题。 3. 贪心法:局部最优策略求全局最优解,如霍夫曼编码、活动选择问题。 4. ...
希尔排序法的基本思想是将待排序的序列分成若干个小组,每组进行插入排序,然后逐步合并小组,直到整个序列有序。 希尔排序法的时间复杂度为 O(n log n),空间复杂度为 O(1)。希尔排序法的优点是快速稳定,缺点是...
在这个场景中,我们讨论的是如何使用分治法的思想来实现插入排序,并通过C++语言进行编程实践。 ### 分治法原理 分治法是计算机科学中解决问题的一种策略,它将大问题分解为若干个规模较小、相互独立、与原问题形式...