这篇博客主要实现一些常见的排序算法。例如:
//冒泡排序
//选择排序
//简单插入排序
//折半插入排序
//希尔排序
//归并排序
//双向的快速排序
//单向的快速排序
//堆排序对于各个算法的实现原理,这里不再多说了,代码中注释较多,结合注释应该都能理解算法的原理,读者也可自己google一下。另外,注释中有很多点,比如边界条件、应用场景等已经用 * 标记,* 越多,越应...
分类:
编程语言 时间:
2016-05-18 18:37:48
阅读次数:
257
直接插入排序 和 折半插入排序Java实现;时间复杂度和空间复杂度分析...
分类:
编程语言 时间:
2016-05-13 14:55:25
阅读次数:
130
```#include using namespace std;const int N = 10;int data[] = {6,1,2,7,9,3,4,5,10,8};void binaryInsertSort(int* data,int n);void printArray(int* data,... ...
分类:
编程语言 时间:
2016-05-13 12:19:46
阅读次数:
148
引言:
老师已经是第三次跟我们讲排序了,可想而知排序它的重要性,这三种基本排序的方式值得我们思考和研究,理解其中的思想。
简述:
概念:
将杂乱无章的数据元素,通过一定的方法按关键字顺序排列的过程叫做排序
常见排序算法:
快速排序、希尔排序、堆排序、直接选择排序不是稳定的排序算法,而基数排序、冒泡排序、直接插入排序、折半插入排序、归并排序是稳定的排序算法。...
分类:
编程语言 时间:
2016-05-13 04:24:44
阅读次数:
264
最近看数据结构,把常用的排序算法用C语言写了一下。
没有按数据结构上的定义SqList结构体,只是用数组的形式实现。
有的算法并没有完全按书上给出的算法,但思路一致。
#include
void InsertSort(int[], int); //直接插入排序 无哨兵
void BInsertSort(int[], int); //折半插入排序
void BubbleSort(int[], ...
分类:
编程语言 时间:
2016-05-12 16:17:59
阅读次数:
269
对于大量的数据,直接插入排序的比较与移动的次数会比较多,在直接插入排序的基础上,为了减少比较的次数,实现了折半插入排序。
折半插入排序主要分为两个部分,第一部分就是找到待排数字应该插入的位置,第二部分就是移动数据,将待排数据插入有序数列中。
数据结构和直接插入排序的数据结构相同,在折半插入排序的代码如下void BInsertSort(sqList L,int len)
{
//这个是利...
分类:
编程语言 时间:
2016-05-12 15:09:56
阅读次数:
189
10种排序算法,分别是直接插入排序,折半插入排序,希尔排序,冒泡排序,快速排序,直接选择排序,树形排序,堆排序,归并排序,基数排序。各有千秋,但依旧有优劣之分,熟悉每一个算法,对于我们的代码优化,也将事半功倍。 1,直接插入排序: 基本思想: 假设待排的n个记录存放在变量R中,首先将R[1]看做是有 ...
分类:
编程语言 时间:
2016-04-29 14:15:01
阅读次数:
234
转自:http://www.cnblogs.com/zxcjj/p/5445757.html 10种排序算法,分别是直接插入排序,折半插入排序,希尔排序,冒泡排序,快速排序,直接选择排序,树形排序,堆排序,归并排序,基数排序。各有千秋,但依旧有优劣之分,熟悉每一个算法,对于我们的代码优化,也将事半功 ...
分类:
编程语言 时间:
2016-04-29 13:51:57
阅读次数:
272
插入排序Insertionsort插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。插入排序方法分直接插入排序和折半插入排序两种,这里只介绍直接插入排序,折半插入排序留到“查找”内容中进行。图1演示了对4个元素进行直接插入排序的..
分类:
编程语言 时间:
2016-04-25 22:56:17
阅读次数:
494
最近总结一下排序算法相关知识。 排序算法的分类: 插入类排序:在已经有序的序列中,插入一个新的记录。 直接插入排序、折半插入排序、希尔排序。 交换类排序:交换类排序的核心是“交换”,即每一趟排序,都能通过一系列的“交换”动作,让一个记录排到它最终的位置上。 冒泡排序、快速排序。 选择类排序:每一趟排 ...
分类:
其他好文 时间:
2016-04-18 15:02:11
阅读次数:
116