C#插入排序详解
这几天一直在研究算法,也算有点心得,现在跟大家分享一下,我是用C#做的
排序算法是想要成为大虾程序员必须要掌握的技术,它其实也是一种思想,你对算法熟悉,对以后编程有很大帮助
算法思路
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace 插入排序
{
//插入排序在大概有序时速度会快很多,比如:3,1,7,4,5,9,10,15,12
//这种,你会发现大概上已经升序了,这时插入快,
//平时速度跟其他排序是差不多的. class Program
{
static void Main(string[] args)
{
int[] arr = { , , , , , , , , , , , , , }; //待排序数组
InsertSort(arr); //调用插入排序函数
foreach (int item in arr)
Console.WriteLine(item);
} private static void InsertSort(int[] arr)
{
//插入排序是把无序列的数一个一个插入到有序的数
//先默认下标为0这个数已经是有序
for (int i = ; i < arr.Length; i++)
{
int insertVal = arr[i]; //首先记住这个预备要插入的数
int insertIndex = i - ; //找出它前一个数的下标(等下 准备插入的数 要跟这个数做比较) //如果这个条件满足,说明,我们还没有找到适当的位置
while (insertIndex >= && insertVal < arr[insertIndex]) //这里小于是升序,大于是降序
{
arr[insertIndex + ] = arr[insertIndex]; //同时把比插入数要大的数往后移
insertIndex--; //指针继续往后移,等下插入的数也要跟这个指针指向的数做比较
}
//插入(这时候给insertVal找到适当位置)
arr[insertIndex + ] = insertVal;
}
}
}
}
C#插入排序详解的更多相关文章
- 数据结构图文解析之:哈夫曼树与哈夫曼编码详解及C++模板实现
0. 数据结构图文解析系列 数据结构系列文章 数据结构图文解析之:数组.单链表.双链表介绍及C++模板实现 数据结构图文解析之:栈的简介及C++模板实现 数据结构图文解析之:队列详解与C++模板实现 ...
- 20160206.CCPP体系详解(0016天)
代码片段(01):.指针.c+02.间接赋值.c 内容概要:内存 ///01.指针 #include <stdio.h> #include <stdlib.h> //01.取地 ...
- 20160203.CCPP体系详解(0013天)
程序片段(01):数组.c+02.数组初始化语法.c 内容概要:数组 ///01.数组.c #include <stdio.h> #include <stdlib.h> //0 ...
- 八大排序算法详解(动图演示 思路分析 实例代码java 复杂度分析 适用场景)
一.分类 1.内部排序和外部排序 内部排序:待排序记录存放在计算机随机存储器中(说简单点,就是内存)进行的排序过程. 外部排序:待排序记录的数量很大,以致于内存不能一次容纳全部记录,所以在排序过程中需 ...
- 大数据学习笔记——Spark工作机制以及API详解
Spark工作机制以及API详解 本篇文章将会承接上篇关于如何部署Spark分布式集群的博客,会先对RDD编程中常见的API进行一个整理,接着再结合源代码以及注释详细地解读spark的作业提交流程,调 ...
- javascript常用经典算法实例详解
javascript常用经典算法实例详解 这篇文章主要介绍了javascript常用算法,结合实例形式较为详细的分析总结了JavaScript中常见的各种排序算法以及堆.栈.链表等数据结构的相关实现与 ...
- python 排序算法总结及实例详解
python 排序算法总结及实例详解 这篇文章主要介绍了python排序算法总结及实例详解的相关资料,需要的朋友可以参考下 总结了一下常见集中排序的算法 排序算法总结及实例详解"> 归 ...
- Linq之旅:Linq入门详解(Linq to Objects)
示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...
- 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)
一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...
随机推荐
- 为什么需要用到序列化?为什么HttpSession中对象要序列化
简单说就是为了保存在内存中的各种对象的状态,并且可以把保存的对象状态再读出来.虽然你可以用你自己的各种各样的方法来保存Object States,但是Java给你提供一种应该比你自己好的保存对象状态的 ...
- Linux文件系统介绍
1.ext2/ext3(日志功能)文件系统(Linux标准文件系统.一种索引式文件系统) SuperBlock:Superblock是记录整个filesystem 相关信息的地方,没有Superblo ...
- 90. Subsets II
题目: Given a collection of integers that might contain duplicates, nums, return all possible subsets. ...
- Java API —— Map接口
1.Map接口概述 · 将键映射到值的对象 · 一个映射不能包含重复的键 · 每个键最多只能映射到一个值 2.Map接口和Collection接口的 ...
- ios摇一摇
-(void) motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event { if (motion==UIEventSubtypeMo ...
- 1930. Ivan's Car(spfa)
1930 简单二维 标记一下是上坡还是下坡 #include <iostream> #include<cstdio> #include<cstring> #incl ...
- ACM - ICPC World Finals 2013 C Surely You Congest
原题下载:http://icpc.baylor.edu/download/worldfinals/problems/icpc2013.pdf 题目翻译: 试题来源 ACM/ICPC World Fin ...
- poshytip两个实用示例
<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> < ...
- BestCoder Round #35
A 题意:给出n个黑球,m个白球,每次取1个球,取了n+m次以后,会生成一个随机的01串S, 如果第i次取出的是黑球,则s[i]=1,如果是白色的,那么s[i]=0, 问01串在S中出现的期望次数 大 ...
- GridView CommandArgument 绑定多个参数
我们在使用GridView的时候 有时会需要绑定多个参数 <asp:GridView ID="gvwVoxListAll" runat="server" ...