插入排序法
来源:互联网 发布:易语言编程怎么样 编辑:程序博客网 时间:2024/06/08 16:02
起因
米老师上周的讲课,让我们认识到了,算法对于某一种编程语言来说可能对我们更重要,因为计算机语言和开发平台日新月异,万变不离其宗的是那些算法和理论,例如数据结构、算法、编译原理、关系型数据库原理等等。
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。
原理
每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。第一趟比较前两个数,然后把第二个数按大小插入到有序表中; 第二趟把第三个数据与前两个数从后向前扫描,把第三个数按大小插入到有序表中;依次进行下去,进行了(n-1)趟扫描以后就完成了整个排序过程。如下:
【13】, 6, 3, 31, 9, 27, 5, 11
【6, 13】, 3, 31, 9, 27, 5, 11
【3, 6, 13】, 31, 9, 27, 5, 11
【3, 6, 13,31】, 9, 27, 5, 11
【3, 6, 9, 13,31】, 27, 5, 11
【3, 6, 9, 13,27, 31】, 5, 11
【3, 5, 6, 9, 13,27, 31】, 11
【3, 5, 6, 9, 11,13,27, 31】
实现
/********************************************************************************** auth: 薛宇** date: 2016/8/1 11:35:30** desc: 插入排序法** Ver.: V1.0.0*********************************************************************************/using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace InsertSort{ class Program { static void Main(string[] args) { int[] arr = { 13,6,3,31,9,27,5,11}; int i, j, tmp; for (i = 1; i < arr.Length; i++) { tmp = arr[i];// 当前值,这里赋给tmp起临时保存的作用 j = i - 1;// 将当前值与有序区的值依次比较 while (j >= 0 && tmp < arr[j])//改变判断条件,实现从小到大地排列 { arr[j + 1] = arr[j];// 将元素后移 j--; } // j+1(因为上边的while循环多做了一次判断)即为当前值插入的位置 arr[j + 1] = tmp; } for (int k = 0; k < arr.Length; k++) { Console.Write("{0} ", arr[k]); } Console.WriteLine(); Console.ReadKey(); } }}
基础知识为“内功”,把新的语言、技术、标准为“外功”。那么只有内外兼修,才能真正的出神入化成为高手吧。算法研究的路还很长,小编还要跟大家一起努力啊。
0 0
- 【排序】插入排序法
- 插入排序法排序数组
- 排序法之插入排序
- 排序算法--插入排序法
- 排序算法-插入排序法
- 直接插入排序法
- 直接插入排序法
- 回溯插入排序法
- 插入排序法
- 理解插入排序法
- 插入排序法
- 插入法排序
- 插入法排序
- 插入法排序
- 插入排序法
- 直接插入排序法
- 插入法排序
- 插入法排序 .
- hdu1238Substrings
- tomcat结合nginx使用小结
- E - More is better
- 类的内存占用大小
- java学习笔记
- 插入排序法
- RegisterClassEx、CreateWindow、DefWindowProc
- java ftp上传时候可能出现的问题(新手专用)
- Spring-boot开发之DevTool工具
- Google Chrome 源码下载
- vc中程序运行时间的获取方法
- [Sencha ExtJs6 Modern] pullrefresh下拉刷新导致infinite list(无限滚动列表)滚动条不正常
- python requests FriedRing,无头的时候,默认头
- hdu2612——Find a way(BFS)