`

插入排序-学习篇(三)

阅读更多
插入排序:

int array[] = {9,2,5,4,3,6,1,7,8};
int temp = 0;
int num = 0;
int in = 0;
for(int i = 1; i < array.length ; i++){
			
	temp = array[i];
	in = i;
	while(in > 0 && array[in - 1] >= temp){
		array[in] = array[in-1];
		--in;
		num++;//记录交换的次数
	}
	array[in] = temp;//插入
}
for(int i = 0; i < array.length; i++){//打印结果
	System.out.print(array[i]);
			
}
System.out.println("交换次数:")
System.out.print(num);//打印交换次数


重点:保持最左边或是最右边的局部有序。对局部有序的数据不再进行对比和交换,交换次数为N*(N - 1)/4
分享到:
评论

相关推荐

    数据结构 直接插入排序

    本篇文章将详细介绍如何通过编写C语言程序实现直接插入排序,并输出每次排序后的结果,以便观察排序过程中的变化。 #### 二、直接插入排序的基本原理 直接插入排序的基本思想是:将待排序的序列看作是由一个已排序...

    插入排序 合并排序 VC6.0

    本篇文章将详细讲解两种经典的排序算法——插入排序和合并排序,并结合VC6.0(Visual C++ 6.0)这一经典开发环境,探讨如何在C++中实现这两种算法。 ### 插入排序 插入排序是一种简单直观的排序算法,它的工作原理...

    VC++常用算法之 简单插入排序

    本篇将详细阐述简单插入排序的原理、步骤以及如何用C++编程语言来实现。 1. **算法原理**: 简单插入排序的工作机制类似于我们在日常生活中整理扑克牌。想象你有一副未排序的扑克牌,每次取一张牌,将其插入到已...

    java快速排序、冒泡排序、插入排序示例

    本篇文章将详细讲解快速排序、冒泡排序和插入排序这三种常用的排序算法,并通过Java代码示例进行演示。 **快速排序** 快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare于1960年提出。其基本思想是...

    使用C语言写的直接插入排序算法

    本篇文章将详细介绍一个使用C语言编写的直接插入排序算法。直接插入排序是一种简单的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现...

    数据结构-排序-实验报告.doc

    这篇实验报告围绕的是数据结构课程中的内部排序主题,主要涵盖了两个经典的排序算法——插入排序和快速排序。实验目的是为了让学生熟悉这两种排序算法的工作原理,并通过实际编程实现它们。 1. 插入排序(Insertion...

    C语言冒泡选择插入排序

    本篇文章将深入探讨并详细解析三种基本的排序算法:冒泡排序、插入排序以及选择排序,这三种算法均使用C语言实现。 ### 冒泡排序 冒泡排序是一种简单的比较排序算法,其基本思想是重复地走访过要排序的数列,一次...

    插入法对10个数排序

    在IT领域,特别是计算机科学与程序设计中,排序算法是数据结构...通过对给定代码的分析,我们不仅理解了插入排序的基本思想,也掌握了其在C语言中的具体实现方式,这对于学习和掌握数据结构与算法的基础知识大有裨益。

    排序算法(JAVA语言):冒泡排序,插入排序,选择排序,归并排序,快速排序

    插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),并且在数据量较小或者部分有序的情况下,插入排序的性能表现优秀,其时间复杂度为O(n²)。 **选择排序**的工作原理是每一次从待排序的...

    vc CListCtrl排序-源程序

    本篇文章将深入探讨如何在MFC应用中实现CListCtrl的排序功能,并提供相应的源程序供学习交流。 首先,我们需要了解CListCtrl的基本用法。CListCtrl继承自CWnd,它可以展示数据项,每个数据项又可以有多个子项(列)...

    各种排序算法C++的实现(冒泡,选择,插入,快速,归并,堆)

    本篇文章将深入探讨几种常见的排序算法的C++实现,包括冒泡排序、选择排序、插入排序、快速排序、归并排序以及堆排序。 1. **冒泡排序**: 冒泡排序是最基础的排序算法之一,它通过重复遍历待排序的数列,依次比较...

    c#选择排序法 冒泡排序法 插入排序法 3种排序法

    本篇文章将详细介绍在C#语言中实现的选择排序法、冒泡排序法以及插入排序法,并通过具体的代码示例来展示每种排序方法的工作原理。 #### 一、冒泡排序(Bubble Sort) **定义与原理:** 冒泡排序是一种简单的排序...

    排序算法: 冒泡排序,桶排序,计数排序,堆排序,插入排序,合并排序,快速排序,基数排序,选择排序,希尔排序 实现语言: C

    本篇文章将深入探讨九种常见的排序算法:冒泡排序、桶排序、计数排序、堆排序、插入排序、合并排序、快速排序、基数排序以及选择排序,并以C语言实现为例。 1. **冒泡排序**: 冒泡排序是一种简单的排序算法,通过...

    Java数组排序总结(冒泡_选择_插入_希尔)__递归算法的复杂度

    本篇文章将深入探讨四种基本的排序算法:冒泡排序、选择排序、插入排序以及希尔排序,并结合递归算法的复杂度进行分析。这些排序算法在不同的场景下有不同的效率表现,理解它们的原理和复杂度可以帮助我们更好地选择...

    java源码中的数据结构 - 插入排序,快速排序 (附可供调试的源码)

    这篇博客"java源码中的数据结构 - 插入排序,快速排序 (附可供调试的源码)"聚焦于两种经典的排序算法:插入排序和快速排序。这些算法在实际编程中广泛应用,尤其在处理大量数据时,对性能优化有着显著的影响。 首先...

    数据结构的一些积累+插入排序

    本篇将围绕“数据结构的一些积累+插入排序”这一主题进行深入探讨。 ### 插入排序详解 #### 1. 插入排序的基本原理 插入排序是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已...

    C++语言编写的三种排序算法

    本篇文章将深入探讨三种经典的排序算法,这些算法都是用C++语言实现的:冒泡排序、选择排序和插入排序。 首先,我们来看冒泡排序。冒泡排序是一种简单的排序算法,它的基本思想是通过重复遍历待排序的序列,比较...

    中国计量学院数据结构排序资料PPT学习教案.pptx

    本篇PPT是中国计量学院关于数据结构排序的学习资料,主要涵盖了各种内部排序算法的讲解。以下是对其中主要知识点的详细阐述: 1. **排序概述**: - **何为排序**:排序是指将一组无序的记录序列调整为有序的记录...

    数据结构java版 排序算法

    - **折半插入排序**:改进了直接插入排序,通过二分查找确定插入位置,减少了比较次数。 - **希尔排序**:基于插入排序,通过增量序列分组,减少元素移动次数,提高了排序速度。 ### 2. 交换排序 - **冒泡排序**:...

Global site tag (gtag.js) - Google Analytics