1.插入排序插入排序时最容易理解的排序方法,个人总结有三个关键点:1. 需要将处理的元素暂时存储起来2. j变量的范围控制3. 插入值与j变量控制范围中元素大小的比较相关代码: 1 //插入排序 2 template void sort(T* array, int n) 3 { 4 for ...
分类:
编程语言 时间:
2015-07-18 19:54:06
阅读次数:
124
先说一下比较排序的定义吧:比较排序的定义就是除了赋值操作外, 只存在小于‘’这两种运算符是仅有的允许对输入数据进行的操作。插入排序的性质插入排序是一种比较排序将一个数组分为两部分,前面为排好序的部分,后面为未排序的部分将未排序部分的元素逐个插入到已排好序部分的正确位置上就像扑克牌按顺序排列,原先 2...
分类:
编程语言 时间:
2015-07-15 18:47:08
阅读次数:
188
基数排序(Radix sort)是一种非比较型的整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。基数排序也分为LSD(Least significant digital)和MSD(Most significant digital)两种方式,LSD的排序方式由键值的最右边开...
分类:
编程语言 时间:
2015-07-15 18:30:39
阅读次数:
212
1 冒泡排序:void BubbleeSort(int*p,int len,SORT_TYPE type = SORT_ASC) { //方式二冒泡:有发生任务数据交互时。说明已经排序好了 bool flag = true; int k = len; while (flag) { ...
分类:
编程语言 时间:
2015-07-14 13:19:43
阅读次数:
106
各类排序算法总结一.排序的基本概念排序(Sorting)是计算机程序设计中的一种重要操作,其功能是对一个数据元素集合或序列重新排列成一个按数据元素某个项值有序的序列。有n个记录的序列{R1,R2,…,Rn},其相应关键字的序列是{K1,K2,…,Kn},相应的下标序列为1,2,…,n。通过排序,要求...
分类:
编程语言 时间:
2015-07-08 22:07:10
阅读次数:
166
排序算法经常被用来考察一个人的基础能力。因此,对学过的排序算法进行总结,梳理,教材参照网易云课堂里面的浙大开设的数据结构课程里讲到的排序的内容,附上链接:http://mooc.study.163.com/learn/ZJU-1000033001?tid=1000044001#/learn/content?type=detail&id=1000112012&cid=100015100,在此感谢。如...
分类:
编程语言 时间:
2015-07-01 14:13:39
阅读次数:
302
概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较...
分类:
编程语言 时间:
2015-07-01 09:55:58
阅读次数:
274
数据结构排序算法总结这章的内容比较经典,都是一些很好的算法,将来很可能会用得到,总结一下,加深一下印象。文章篇幅有点大。 一:插入排序 1)直接插入排序 2)折半插入排序3)希尔排序二、交换排序1)冒泡排序 2)快速排序三、选择排序1)简单选择排序 2)堆排序 四、归并排序五、基数排序一、插入排序....
分类:
编程语言 时间:
2015-06-22 21:58:51
阅读次数:
250
本文是http://blog.csdn.net/xiazdong/article/details/7304239;的补充,当年看了《大话数据结构》总结的,但是现在看了《算法导论》,发现以前对排序的理解还不深入,所以打算对各个排序的思想再整理一遍。本文首先介绍了基于比较模型的排序算法,即最坏复杂度都在...
分类:
编程语言 时间:
2015-06-18 16:56:56
阅读次数:
218
还有一个:二分插入排序 平均时间O(n2) 稳定1、插入排序在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。直接插入排序是稳定的。算法时间复杂度O(n2)--[n的平方]mai...
分类:
移动开发 时间:
2015-06-15 16:19:28
阅读次数:
184