排序算法有很多种,这里在复习和分析的基础上,做一个自己的总结;首先要知道有哪些排序算法,google一下,有云C语言7大经典排序算法(也有8大)。主要包括冒泡排序,快速排序,选择排序,插入排序,希尔排序,归并排序,堆排序,8大的还有基数排序。各有各的版本,代码写法也各不相同。所以这里以整理思路为先,...
分类:
编程语言 时间:
2014-07-06 23:13:49
阅读次数:
301
注:本篇内容为翻译,之所以选择这篇进行翻译原因是该文章含有动画,能够更加直观地展示快速排序。同时,可以仔细看一下代码,代码中把结构化的思想给予了更加充分地表现。按照功能进行模块划分的思想得到了彻底地贯彻。以下内容翻译自:http://cprogramminglanguage.net/quicksor...
分类:
编程语言 时间:
2014-07-05 16:51:34
阅读次数:
232
#include#includetypedef int ElementType;#define Cutoff (3)void swap(int *a,int *b){ int temp=*a; *a=*b; *b=temp;}void WithSentrySort(ElementT...
分类:
其他好文 时间:
2014-07-05 16:47:48
阅读次数:
228
一,归并排序 归并排序是建立在归并操作上的一种排序算法,它采用了分治法的思想,是一种稳定的排序算法,而且归并排序的速度仅次于快速排序。时间复杂度:O(n*logn),最坏的情况:O(n*logn),空间复杂度:O(n)。从数据就可以看出:归并排序比快速排序快很多,同样为稳定排序。 ...
分类:
其他好文 时间:
2014-07-05 11:16:20
阅读次数:
208
上一篇讲到的直接插入排序,时间复杂度O(n^2). 请在脑海里想一下它的过程。如果一个序列本来就是有序的,对它排序的时间复杂度是O(n)。所以当序列基本有序时,插入排序排序的效率大提高,因为减少了移动的动作。
另外,接插入排序还有一个特点,当n比较小时,它的效率比较高。...
分类:
其他好文 时间:
2014-07-04 08:54:11
阅读次数:
302
顺序查找和二分查找
一、顺序查找思想
1、 从表的一端开始扫描,顺序扫描线性表,依次扫描到的结点关键字与给定的值K相比较.如果当前扫描到的结点的关键字与给定的值K相等,则查找成功;若扫描结束后,仍未找到关键字与给定的值K相等,则查找失败;
2、顺序查找既适用于顺序存储结构,也适用于线性表的链式存储结构;
3、ASL= (n+1)/2为其平均查找长度...
分类:
其他好文 时间:
2014-07-04 08:49:02
阅读次数:
230
快速排序是对冒泡排序算法的一种改进型算法,而且快速排序也采用了分治法的思想。快速排序是不稳定排序,平均时间复杂度为:O(n*logn),最坏时间复杂度为:O(n*n),空间时间复杂度:O(logn),但快速排序通常是用于排序的最佳实用的选择。快速排序的思想:从数组选取一个数(通常是第一个数)...
分类:
其他好文 时间:
2014-07-03 23:36:18
阅读次数:
296
1 #include 2 using namespace std; 3 void Qsort(int a[],int,int); //注意声明格式 4 int main(){ 5 6 int a[]={57,68,59,52,72,28,96,33,24}; 7 for...
分类:
其他好文 时间:
2014-07-02 22:29:34
阅读次数:
227
最近把七种排序算法集中在一起写了一遍。注释里有比较详细的说明。 1 /*排序算法大集合**/ 2 #include 3 #include 4 #include 5 6 //------------------快速排序------------------// 7 /* 8 核心...
分类:
其他好文 时间:
2014-07-01 17:52:11
阅读次数:
113
把数组排成最小的数 代码(C)本文地址: http://blog.csdn.net/caroline_wendy题目: 输入一个正整数数组, 把数组里所有数字拼接起来排成一个数, 打印能拼接出的所有数字中最小的一个.大数转换为字符串, 重载快速排序的比较方法, 进行排序, 最后拼接.代码:/*
* main.cpp
*
* Created on: 2014.6.12
* Aut...
分类:
其他好文 时间:
2014-07-01 15:01:31
阅读次数:
248