1)③排序算法之插入排序[1]直接插入排序

 1 #include<iostream>
 2 using namespace std;
 3
 4 int direct_sort(int n,int array[100]){//直接插入排序
 5     register int  i,temp;
 6     for(i=1;i<n;i++){
 7         temp=array[i];
 8         int j=i-1;
 9         while(array[j]>temp){
10             array[j+1]=array[j];
11             j--;
12         }
13         array[j+1]=temp;
14     }
15     return 0;
16 }
17
18 int print(int n,int array[100]){
19     int i;
20     for(i=0;i<n;i++){
21         cout<<array[i]<<" ";
22     }
23     cout<<endl;
24     return 0;
25 }
26 int main()
27 {
28     int array[10]={5,7,8,2,3,5,4,3,2,1};
29     direct_sort(10,array);
30     print(10,array);
31     return 0;
32 }
时间: 2024-10-06 03:35:06

1)③排序算法之插入排序[1]直接插入排序的相关文章

#排序算法#【2】直接插入排序、希尔排序

直接插入排序法 插入排序的算法描述是一种简单直观的排序算法.它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入.插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后移动,为最新元素提供插入空间. 核心代码: //直接插入排序法 void InsertSort(int a[],int n){ int i,j,k,t; for(i = 1 ; i<n;i++){ k = a[i]; /* 第一次比较粗糙的写法 j = i-1; while(

图形化排序算法比较:快速排序、插入排序、选择排序、冒泡排序

图形化排序算法比较:快速排序.插入排序.选择排序.冒泡排序

【数据结构】——排序算法——1.1、直接插入排序

插入算法很多,无论是在内功修炼,各种笔试面试都是相当有用的.接下来,将陆续将各种排序算法进行练习: 主要分为以下几个部分(其他后面学习补充): 一.插入类排序:1.直接插入排序:2.折半插入排序:3.希尔shell排序: 二.交换类排序:1.冒泡排序 :2.快速排序: 三.选择类排序:1.简单选择: 2.堆排序: 本人多使用Java--开始吧! 首先推荐1.维基百科<排序算法>词条,图文并茂,很形象!2.学习博文<维基百科上的算法和数据结构链接很强大>,资料很多,保存学习! [数据

排序算法总结(一)插入排序【Insertion Sort】

最近在忙着找工作,以前看的排序算法都忘记了,悲剧啦T  T现在来回顾一下吧. 这边推荐一个算法可视化的网站,非常有用.http://visualgo.net/ 一.插入排序的思想(Wikipedia): 它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入.插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间. 从第一个元素开始,该元素可以

常见的排序算法(五):插入排序

插入排序(英语:Insertion Sort)是一种简单直观的排序算法.它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入.插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间. 一般来说,插入排序都采用in-place在数组上实现.具体算法描述如下: 从第一个元素开始,该元素可以认为已经被排序 取出下一个元素,在已经排序的元素序列中从后

排序算法总结:二、插入排序

先说一下比较排序的定义吧: 比较排序的定义 就是除了赋值操作外, 只存在小于‘<’和大于‘>’这两种运算符是仅有的允许对输入数据进行的操作. 插入排序的性质 插入排序是一种比较排序 将一个数组分为两部分,前面为排好序的部分,后面为未排序的部分 将未排序部分的元素逐个插入到已排好序部分的正确位置上 就像扑克牌按顺序排列,原先 2,4,5 和 10 都排好序了,现在需要为 7 找到正确的位置 时间复杂度 运行时间为 T(N) = O(N^2) 平均运行时间为 T(N) = Θ(N^2). 代码实现

数据结构与算法之排序算法(一):插入排序

插入排序可以分为:直接插入排序和希尔排序(已知元素,找位置) 1.直接插入排序 原理:将一个未排序数组分为无序区和有序区,不断将无序区的第一个元素按照大小插入到有序区,最后直到无序区的元素都插入到有序区,排序完成. 代码实现: for(int i = 1; i < a.length; i++){ //无序区开始下标 if(a[i] < a[i-1]){//判断是否应排序 int currentValue = a[i];//将a[i]临时存储起来 int j = i-1; //两个条件的顺序不能

(九)数据结构之简单排序算法实现:冒泡排序、插入排序和选择排序

d59FG8075P7伊http://www.zcool.com.cn/collection/ZMTg2NTU2NjQ=.html 312V畏蝗淤ZP哦睬http://www.zcool.com.cn/collection/ZMTg2NTU4NDQ=.html f衷4i82419s搪褂压8http://www.zcool.com.cn/collection/ZMTg2NTU4Njg=.html 75抖0瞪4豪c练偃62诵付http://www.zcool.com.cn/collection/ZM

JavaScript 数据结构与算法之美 - 冒泡排序、插入排序、选择排序

1. 前言 算法为王. 想学好前端,先练好内功,只有内功深厚者,前端之路才会走得更远. 笔者写的 JavaScript 数据结构与算法之美 系列用的语言是 JavaScript ,旨在入门数据结构与算法和方便以后复习. 之所以把冒泡排序.选择排序.插入排序放在一起比较,是因为它们的平均时间复杂度都为 O(n2). 请大家带着问题:为什么插入排序比冒泡排序更受欢迎 ?来阅读下文. 2. 如何分析一个排序算法 复杂度分析是整个算法学习的精髓. 时间复杂度: 一个算法执行所耗费的时间. 空间复杂度:

排序算法比较及其应用

一.将各种数据排序 只要实现了Comparable接口的数据类型就可以被排序. 但要使算法能够灵活地用不同字段进行排序,则是后续需要考虑的问题. 1.指针排序 在Java中,指针操作是隐式的,排序算法操作的总是数据引用,而不是数据本身. 2.键不可变 如果在排序后,用例还可以改变键值,那么数组很可能就不是有序的了.类似,优先队列也会乱套. Java中,可以用不可变数据类型作为键来避免这个问题,如String,Integer,Double和File都是不可变的. 3.廉价交换 使用引用的另一个好处