算法思路:假定这些数字的序是排好的,然后从头往后,如果有数比当前外层元素的值大,则将这个数的位置往后挪,直到当前外层元素的值大于或等于它前面的位置为止.这具算法在排完前k个数之后,可以保证a[1…k]是局部有序的,保证了插入过程的正确性.
package test;
import java.util.Scanner;
public class InserSort {
public static void main(String[] args) {
/*输入十个数字*/
int a[]=new int[10];
Scanner sc=new Scanner(System.in);
System.out.println(“请输入十个数字:”);
for(int i=0;i<10;i++){
a[i]=sc.nextInt();
}
/*排序的算法实现*/
for(int i=1;i<10;i++){
int j=i-1;
int k=a[i];
while(true){
if(a[j]>k){
a[j+1]=a[j];
j–;
if(j==-1)
break;
}
else
break;
}
a[j+1]=k;
}
//输出十个数字
System.out.println(“从小到大的排序为:”);
for(int i=0;i<10;i++){
System.out.println(a[i]);
}
}
}
插入排序时间复杂度:平均时间复杂度为 O(n^2) 最好情况:比较 n-1次,最坏情况比较n(n-1)/2
稳定性: 相等元素的前后顺序没有改变,从原无序序列出去的顺序就是排好序后的顺序,所以插入排序是稳 定的。
分享到:
相关推荐
实现以下常用的内部排序算法并进行性能比较:"直接插入排序"," 折半插入排序"," 2—路插入排序"," 表插入排序"," 希尔排序"," 起泡排序"," 快速排序"," 简单选择排序"," 树形选择排序"," 堆排序"," 归并排序"," 链式...
综上所述,希尔排序、直接插入排序和折半插入排序都是常见的排序算法。它们各有特点,适用于不同场景下的数据排序需求。希尔排序通过增加子序列的插入排序来提高效率;直接插入排序简单直观,但效率较低;而折半插入...
总的来说,Java中的直接插入排序算法是一个直观易懂的排序方法,虽然在效率上不敌更高级的排序算法,但它在理解和实现上相对简单,对于初学者来说是很好的学习材料。通过阅读和实践这个源代码,你可以深入理解排序...
本话题主要探讨六种内部排序算法:直接插入排序、希尔排序、冒泡排序、快速排序、选择排序以及堆排序。这六种排序算法各有优劣,适用于不同的场景,接下来我们将逐一进行详细阐述。 1. **直接插入排序**: 直接...
### 数据结构:直接插入排序算法解析 #### 一、引言 在计算机科学领域,排序是一种常见的操作,用于将一组无序的数据按照特定的顺序排列。插入排序是一种简单直观的排序算法,它的工作原理类似于人们手工排序扑克...
内容概要:本文详细介绍了直接插入排序的基本原理及其Python实现。该算法通过逐个元素从已排序部分找到相应位置并插入,完成整个序列的排序。文中给出的Python代码清晰展示了直接插入排序的具体实现步骤。文章还对...
堆排序与直接插入排序算法的比较 堆排序和直接插入排序是两种常用的排序算法,分别具有不同的时间和空间复杂度。本文将通过对两种排序算法的实现和比较,分析它们的优缺点,并讨论在不同场景下的应用。 1.1 功能...
### 使用C语言实现的直接插入排序算法 #### 算法概述 本篇文章将详细介绍一个使用C语言编写的直接插入排序算法。直接插入排序是一种简单的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序...
直接插入排序是一种基础的排序算法,它的工作原理是将未排序的元素逐个与已排序的部分进行比较,找到合适的位置并插入。而“二分法直接插入排序”则是对传统直接插入排序的一种优化,它利用了二分查找的特性来减少在...
冒泡排序算法选择排序算法插入排序c语言实现
本资源提供了七大经典排序算法的实现程序,包括快速排序、冒泡排序、选择排序、归并排序、插入排序、希尔排序和堆排序。下面将逐一详细介绍这些排序算法及其原理。 1. 快速排序:由C.A.R. Hoare提出,是一种采用...
在这一大类排序算法中,有三种常见的实现方式:直接插入排序、希尔排序和折半插入排序。 ### 1. 直接插入排序 直接插入排序是最基础的插入类排序,其步骤如下: 1. 将序列中的第一个元素视为已排序部分。 2. 从第...
数据结构(c语言版)严蔚敏 吴伟民编著 中直接插入排序、折半排序、shell排序、冒泡排序、快速排序、选择排序、堆排序的实现、归并排序,使用c语言实现
直接插入排序是一种简单直观的排序算法,它的工作原理可以形象地比喻为打扑克牌时将新拿到的一张牌插入到已排序好的手牌中的正确位置。在这个过程中,我们逐个取出待排序序列中的元素,与已排序的部分进行比较,找到...
直接插入排序是一种基础且常用的排序算法,其工作原理可以形象地比喻为打扑克牌时将新拿到的牌插入到已排序好的牌堆中的过程。在计算机科学中,这个过程通过编程语言来实现,C语言是其中一种常用的语言,以其简洁...
(1) 完成5种常用内部排序算法的演示,5种排序算法为:快速排序,直接插入排序,选择排序,堆排序,希尔排序; (2) 待排序元素为整数,排序序列存储在数据文件中,要求排序元素不少于30个; (3) 演示程序开始,...
内容概要:本文详细介绍了直接插入排序算法的基本原理和实现方法。直接插入排序是一种简单的排序算法,其核心思想是从后向前扫描已排序部分,找到待排序元素的合适位置并插入。文章还提供了基于Python的具体实现代码...
直接插入排序是一种基础且常用的排序算法,尤其在处理小规模或者部分有序的数据时表现出较高的效率。这个算法的主要思想是将一个记录(数组中的一个元素)插入到已经排序好的有序序列中,从而得到一个新的、记录数加...
本资源提供了三种经典的排序算法的C语言实现:堆排序、直接插入排序和快速排序。 首先,让我们详细了解这些排序算法。 1. **直接插入排序**: 直接插入排序是一种简单的排序算法,它的工作原理类似于我们手动排序...
- 直接插入排序是最基础的排序算法之一,它的工作原理类似于人们手动整理扑克牌。首先,数组中的第一个元素被当作已排序的部分,然后逐个将后续元素插入到已排序的序列中,保持序列的有序性。 - 在排序过程中,每...