前面我们实现了顺序表,但是我们应该会考虑到一个问题,顺序表一次性创建那么大空间造成的浪费很多,所以在这里,我们需要一个可以动态增长的顺序表来满足我们的需求!实现中需要注意的是:在这里我们要注意的是首先你应该给顺序表一个容量,当每次满了的时候,进行扩容!另外,在这里我分别使用了三种的排序算法:插入排序,选择排序,冒泡排序。dynamic_seqlist.h#define _CRT_SECURE_NO_...
分类:
其他好文 时间:
2016-06-02 13:54:32
阅读次数:
191
今天,我们来总结一下排序算法:
排序分为冒泡排序,选择排序,插入排序,希尔排序,合并排序,快速排序,堆排序,基数排序等等,本篇文章我来详细解析冒泡排序,选择排序,直接插入排序。冒泡排序首先说说最简单的冒泡排序:从老谭那本书就开始认识冒泡排序了,这种方法简单易懂:
这张动图可以解释冒泡排序。
接下来,看代码的实现:#include
#include
#i...
分类:
编程语言 时间:
2016-06-02 13:47:13
阅读次数:
191
1.首先定义一个需要排序的数组: 2.冒泡排序:相邻之间的数据做对比,每次对比后得出一个下次不需要再对比的数据。 3.插入排序:每次从待排序的一组数中取一个数与已排序的数据做对比。 4.选择排序:每次从待排序的一组数中判断最小或最大的数,并交换位置。 5.快速排序:以某值作参考,以该值为基准,分割带 ...
分类:
编程语言 时间:
2016-06-01 19:52:27
阅读次数:
272
<select name="viewType" style="width: 100%;height: 300px;" multiple="multiple"> <option value selected>选择排序/显示方式</option> <optgroup label="排序"> <optio ...
分类:
Web程序 时间:
2016-06-01 15:35:08
阅读次数:
503
选择排序工作原理:每一次从待排序的数据元素中选出最大或最小的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。voidSelectSort(int*a,size_tsize)
{
assert(a);
for(inti=0;i<size;i++)
{
intmin=i;
for(intj=i+1;j<size;j++)
{
//选择最小元素
if(a[..
分类:
编程语言 时间:
2016-06-01 07:00:34
阅读次数:
154
选择排序&&堆排序 1.选择排序: 介绍:选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 ...
分类:
编程语言 时间:
2016-05-27 20:23:34
阅读次数:
398
简单排序算法:每一趟选择最小的与该趟第一个数交换,而不动其他数。 例如 3,8,2,5,7第1趟:2与3交换 2,8,3,5,7 第2趟:3与8交换 2,3,8,5,7 第3趟:5与8交换 2,3,5,8,7 第4趟:7与8交换 2,3,5,7,8 关键点在于:保持其他数不动,只把索引为0的数(第一 ...
分类:
编程语言 时间:
2016-05-27 16:40:29
阅读次数:
170
插入排序
1动图展示
2算法描述
3示例代码
选择排序
1动图展示
2算法描述
3示例代码
冒泡排序
1动图展示
2算法描述
3示例代码
快速排序
1动图展示
2算法描述
3示例代码
合并排序
1动图展示
2算法描述
3示例代码
希尔排序
1动图展示
2算法描述
3示例代码
堆排序
1动图展示
2算法描述
3示例代码这里抽象出了一个排序基类:public abstract class BaseSor...
分类:
编程语言 时间:
2016-05-27 11:30:32
阅读次数:
240
几个排序算法 几个排序算法 几个排序算法 冒泡排序 选择排序 插入排序 快速排序 quick sort 冒泡排序 冒泡排序是比较简单的排序方法,它的思路是重复的走过要排序的序列,一次比较两个元素,如果顺序错误,就交换元素的位置,直到没有元素需要交换位置。 原 始618597 第一次 1 6 8 5 ...
分类:
编程语言 时间:
2016-05-25 16:47:00
阅读次数:
163
选择排序1.选择排序//堆排序,向下调整子函数voidAdjustDown(int*a,size_tsize,size_troot){ size_tparent=root; size_tchild=parent*2+1; while(child<size) { //选择孩子节点中较大的节点,与父亲节点交换 if(child+1<size&&a[child+1]>a[child]) { ++..
分类:
编程语言 时间:
2016-05-24 22:57:23
阅读次数:
332