插入排序思想:
将当前无序序列的首个记录插入到有序序列中,逐个扩充有序序列直至完成排序。
数组有N个元素,那么要求至多进行N(N-1)/2次比较,时间复杂度O(N*N),空间复杂度O(N).
/**
* InsertSort.java
*
* 插入排序
*
* @author Administrator
*/
public class InsertSort {
public static void insertSort(int[] a) {
for (int i = 1; i < a.length; i++)
if (a[i] < a[i - 1]) {
int temp = a[i]; // 复制为哨兵.
int insertLoc = i; // 要插入的位置
for (insertLoc = i - 1; temp < a[insertLoc]; insertLoc--) {
a[insertLoc + 1] = a[insertLoc];
}
a[insertLoc + 1] = temp; // 插入到正确的位置.
}
}
public static void main(String[] args) throws Exception {
if (args.length == 0) {
System.out.println("请输入数字以空格隔开");
System.exit(-1);
}
int[] a = new int[args.length];
for (int i = 0; i < args.length; i++)
a[i] = Integer.parseInt(args[i]);
insertSort(a);
// 输出排序后的数组元素。
for (int i = 0; i < a.length; i++)
System.out.println(a[i]);
}
}
分享到:
相关推荐
交换排序 选择排序 冒泡排序 插入排序
总结,"归并排序插入排序C++代码"的实现可能涉及将这两种排序算法融合在一起,通过判断和选择合适的排序方式来优化排序过程。这种结合方法可以提高算法的灵活性和效率,特别是在处理不同特性的数据集时。学习并理解...
插入排序 插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴,但它的原理应该是最容易理解的了,因为只要打过扑克牌的人都应该能够秒懂。插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序...
本资源包"选择排序 冒泡排序 插入排序 快速排序 堆排序.zip"聚焦于五种经典的排序算法,包括选择排序、冒泡排序、插入排序、快速排序以及堆排序。这些算法的实现语言是Objective-C,这是一种强大的面向对象的编程...
采用c++描述了各种排序算法,包括选择排序 冒泡排序 插入排序 基数排序 快速排序 归并排序 。实验内容 1、创建排序类。 2、提供操作:选择排序、冒泡排序、插入排序、*基数排序、*快速排序、*归并排序。 3、*能够...
基本排序气泡排序插入排序快速排序双通道快速排序三通道快速排序堆排序.zip
排序算法汇总P: 冒泡排序快速排序直接选择排序插入排序希尔排序 堆排序........
选择排序、插入排序和快速排序都是经典的排序算法,各有其特点和适用场景。接下来,我们将详细探讨这三个排序算法。 1. **选择排序(Selection Sort)** 选择排序是一种简单直观的排序算法。它的基本思想是在未...
### 插入排序详解 #### 一、插入排序概述 插入排序是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上通常采用in-...
在给定的标题和描述中,我们关注四种经典的排序算法:快速排序、希尔排序、插入排序和折半排序。这些算法各有特点,适用于不同的场景,下面将详细介绍它们的工作原理、性能以及应用场景。 1. **快速排序(Quick ...
binary sort,二分法查找,binary search, 二分法排序,merge sort 混合排序,shell sort 希尔排序,insertion sort 插入排序。数据结构 data structure
这里我们汇总了七种常见的排序算法:Shell排序、归并排序、选择排序、快速排序、堆排序、冒泡排序和插入排序。每种算法都有其独特的特点和适用场景,下面将逐一详细介绍。 1. **Shell排序**:由Donald Shell提出,...
排序算法的实现与分析,经典排序算法的实现及解析 冒泡排序 插入排序 等
插入排序.py python实现的排序插入排序.py python实现的排序插入排序.py python实现的排序插入排序.py python实现的排序插入排序.py python实现的排序插入排序.py python实现的排序插入排序.py python实现的排序插入...
该源文件包括三种排序算法,实现效率教高,代码量也不大
这里我们将深入探讨几种常见的排序算法:冒泡排序、插入排序、快速排序、双路快速排序、三路快速排序以及堆排序。 **1. 冒泡排序** 冒泡排序是最基础的排序算法之一,其工作原理类似于水底下的气泡逐渐上浮。通过...
本主题将详细探讨通过色彩渐变立方体来可视化三种经典的排序算法:冒泡排序、插入排序和选择排序。 首先,让我们理解色彩渐变的概念。在本案例中,红色、绿色和蓝色的立方体代表不同的数值,颜色的深浅或明暗表示...
本篇文章将详细讲解两种经典的排序算法——插入排序和合并排序,并结合VC6.0(Visual C++ 6.0)这一经典开发环境,探讨如何在C++中实现这两种算法。 ### 插入排序 插入排序是一种简单直观的排序算法,它的工作原理...
这四种排序算法都是基础排序算法的重要组成部分,其中冒泡排序和选择排序的时间复杂度较高(均为O(n^2)),而插入排序适用于部分有序的数组。希尔排序则是插入排序的一种优化版本,通过增量分组的方式提高了排序效率...
本PPT学习教案主要介绍了两种基础的排序方法:插入排序和交换排序。 首先,排序的基本定义是将数据元素(如数组或列表中的项)从一个任意序列调整为一个按指定关键字(key)有序的序列。例如,将一个无序的数字序列...