插入排序:
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(Visual C++ 6.0)这一经典开发环境,探讨如何在C++中实现这两种算法。 ### 插入排序 插入排序是一种简单直观的排序算法,它的工作原理...
本篇将详细阐述简单插入排序的原理、步骤以及如何用C++编程语言来实现。 1. **算法原理**: 简单插入排序的工作机制类似于我们在日常生活中整理扑克牌。想象你有一副未排序的扑克牌,每次取一张牌,将其插入到已...
本篇文章将详细讲解快速排序、冒泡排序和插入排序这三种常用的排序算法,并通过Java代码示例进行演示。 **快速排序** 快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare于1960年提出。其基本思想是...
本篇文章将详细介绍一个使用C语言编写的直接插入排序算法。直接插入排序是一种简单的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现...
这篇实验报告围绕的是数据结构课程中的内部排序主题,主要涵盖了两个经典的排序算法——插入排序和快速排序。实验目的是为了让学生熟悉这两种排序算法的工作原理,并通过实际编程实现它们。 1. 插入排序(Insertion...
本篇文章将深入探讨并详细解析三种基本的排序算法:冒泡排序、插入排序以及选择排序,这三种算法均使用C语言实现。 ### 冒泡排序 冒泡排序是一种简单的比较排序算法,其基本思想是重复地走访过要排序的数列,一次...
在IT领域,特别是计算机科学与程序设计中,排序算法是数据结构...通过对给定代码的分析,我们不仅理解了插入排序的基本思想,也掌握了其在C语言中的具体实现方式,这对于学习和掌握数据结构与算法的基础知识大有裨益。
插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),并且在数据量较小或者部分有序的情况下,插入排序的性能表现优秀,其时间复杂度为O(n²)。 **选择排序**的工作原理是每一次从待排序的...
本篇文章将深入探讨如何在MFC应用中实现CListCtrl的排序功能,并提供相应的源程序供学习交流。 首先,我们需要了解CListCtrl的基本用法。CListCtrl继承自CWnd,它可以展示数据项,每个数据项又可以有多个子项(列)...
本篇文章将深入探讨几种常见的排序算法的C++实现,包括冒泡排序、选择排序、插入排序、快速排序、归并排序以及堆排序。 1. **冒泡排序**: 冒泡排序是最基础的排序算法之一,它通过重复遍历待排序的数列,依次比较...
本篇文章将详细介绍在C#语言中实现的选择排序法、冒泡排序法以及插入排序法,并通过具体的代码示例来展示每种排序方法的工作原理。 #### 一、冒泡排序(Bubble Sort) **定义与原理:** 冒泡排序是一种简单的排序...
本篇文章将深入探讨九种常见的排序算法:冒泡排序、桶排序、计数排序、堆排序、插入排序、合并排序、快速排序、基数排序以及选择排序,并以C语言实现为例。 1. **冒泡排序**: 冒泡排序是一种简单的排序算法,通过...
本篇文章将深入探讨四种基本的排序算法:冒泡排序、选择排序、插入排序以及希尔排序,并结合递归算法的复杂度进行分析。这些排序算法在不同的场景下有不同的效率表现,理解它们的原理和复杂度可以帮助我们更好地选择...
这篇博客"java源码中的数据结构 - 插入排序,快速排序 (附可供调试的源码)"聚焦于两种经典的排序算法:插入排序和快速排序。这些算法在实际编程中广泛应用,尤其在处理大量数据时,对性能优化有着显著的影响。 首先...
本篇将围绕“数据结构的一些积累+插入排序”这一主题进行深入探讨。 ### 插入排序详解 #### 1. 插入排序的基本原理 插入排序是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已...
本篇文章将深入探讨三种经典的排序算法,这些算法都是用C++语言实现的:冒泡排序、选择排序和插入排序。 首先,我们来看冒泡排序。冒泡排序是一种简单的排序算法,它的基本思想是通过重复遍历待排序的序列,比较...
本篇PPT是中国计量学院关于数据结构排序的学习资料,主要涵盖了各种内部排序算法的讲解。以下是对其中主要知识点的详细阐述: 1. **排序概述**: - **何为排序**:排序是指将一组无序的记录序列调整为有序的记录...
- **折半插入排序**:改进了直接插入排序,通过二分查找确定插入位置,减少了比较次数。 - **希尔排序**:基于插入排序,通过增量序列分组,减少元素移动次数,提高了排序速度。 ### 2. 交换排序 - **冒泡排序**:...