
排序
Mcdull28
Dream It Possible
展开
-
c语言实现希尔排序
自己看书时,对希尔排序的理解一直处于茫然状态,然后在维基百科上看到了这样一句话,再加上这样一个例子,总算消除了我的迷惑。 因为访问危机百科需要翻墙,故复制了了相关内容在本博客里,若读者已翻墙,可以直接点此进入维基百科查看。 -----------------------------------------------------以下内容来源于维基百科----------------------原创 2015-09-07 18:00:50 · 1260 阅读 · 0 评论 -
c语言实现快速排序
快速排序使用分治法(Divide and conquer)策略来把一个序列(list)分为两个子序列(sub-lists)。 步骤为: 从数列中挑出一个元素,称为"基准"(pivot),重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区结束之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。递归原创 2015-09-08 11:01:49 · 490 阅读 · 0 评论 -
折半插入与折半查找
相关概念不用细说,还是比较简单的。结合折半插入和折半查找,就是为了实现而实现的一个代码,个人兴趣而已。 无序数在经过排序后,很轻松能找到所在位置,但是,如果要求在无序中,数据有序化后,同时得到某数在有序和无序序列中的位置该怎么办呢。我的解决办法是,在结构体中再加一个数据,保存原来位置,具体实现方法见下方代码。 #include #include #define MaxSize 100 st原创 2015-09-10 18:25:34 · 797 阅读 · 0 评论 -
c语言实现直接插入排序(正序和逆序)
#include struct DataType { int data; }; struct Sqlist { DataType R[20]; int length; }; //直接插入排序(从小到大) void Sort(Sqlist *l) { int j; for(int i=2;ilength;i++) { //如果后一个数小于前一个数,则开始排序 if(l->R原创 2015-09-07 09:03:15 · 2967 阅读 · 0 评论