上一页 1 2 3 4 5 6 7 8 ··· 23 下一页
摘要: 题目来源:《The C programming language》中的习题P49练习2-9: 编写函数expand(s1, s2),将字符串s1中类似于a-z一类的速记符号在字符串s2中扩展为等价的完整列表abc...xyz。该函数可以处理大小写字幕和数字,并可以处理a-b-c、a-z0-9与-a-... 阅读全文
posted @ 2014-06-22 16:24 NW_KNIFE 阅读(648) 评论(0) 推荐(0) 编辑
摘要: 最近间间断断的将9种排序算法用C实现,并且将其以博客笔记的形式记录下来,其中各个排序算法的描述部分特别参考了CSDN上太阳落雨的博客!现在就该来综合的分析这九种排序,让我们先来看看其算法复杂度和稳定性的分析结果:一.算法复杂度以及稳定性分析二.排序的时间效率比较 下图表名了各种算法在不同数据规... 阅读全文
posted @ 2014-06-21 21:19 NW_KNIFE 阅读(442) 评论(0) 推荐(0) 编辑
摘要: 一. 算法描述 希尔排序:将无序数组分割为若干个子序列,子序列不是逐段分割的,而是相隔特定的增量的子序列,对各个子序列进行插入排序;然后再选择一个更小的增量,再将数组分割为多个子序列进行排序......最后选择增量为1,即使用直接插入排序,使最终数组成为有序。 增量的选择:在每趟的排序过程都有一... 阅读全文
posted @ 2014-06-21 20:57 NW_KNIFE 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 一. 算法描述 基数排序(以整形为例),将整形10进制按每位拆分,然后从低位到高位依次比较各个位。主要分为三个过程:分配,先从个位开始,根据位值(0-9)分别放到0~9号桶中(比如53,个位为3,则放入3号桶中)收集,再将放置在0~9号桶中的数据按顺序放到数组中重复(1)(2)过程,从个位到最高位... 阅读全文
posted @ 2014-06-21 11:32 NW_KNIFE 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 堆是一种完全二叉树结构,并且其满足一种性质:父节点存储值大于(或小于)其孩子节点存储值,分别称为大顶堆、小顶堆。堆一般采用数组进行存储(从下标为0开始)。则父节点位置为i,那么其左孩子为2*i + 1,右孩子为2*i + 2。一. 算法描述 堆排序主要分为两个过程:建堆:先使长度为N数组形成一... 阅读全文
posted @ 2014-06-17 21:30 NW_KNIFE 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 一. 算法描述 快速排序:快速排序采用分治法进行排序,首先是分割,选取数组中的任意一个元素value(默认选用第一个),将数组划分为两段,前一段小于value,后一段大于value;然后再分别对前半段和后半段进行递归快速排序。其实现细节如下图所示:二. 算法实现/*================... 阅读全文
posted @ 2014-06-16 21:31 NW_KNIFE 阅读(420) 评论(0) 推荐(0) 编辑
摘要: 一. 算法描述 自顶向下的归并排序:采用分治法进行自顶向下的程序设计方式,分治法的核心思想就是分解、求解、合并。先将长度为N的无序序列分割平均分割为两段然后分别对前半段进行归并排序、后半段进行归并排序最后再将排序好的前半段和后半段归并 过程(2)中进行递归求解,最终下图详细的分解了自顶向下的合并... 阅读全文
posted @ 2014-06-15 15:01 NW_KNIFE 阅读(447) 评论(0) 推荐(0) 编辑
摘要: 一. 算法描述 自底向上的归并排序:归并排序主要是完成将若干个有序子序列合并成一个完整的有序子序列;自底向上的排序是归并排序的一种实现方式,将一个无序的N长数组切个成N个有序子序列,然后再两两合并,然后再将合并后的N/2(或者N/2 + 1)个子序列继续进行两两合并,以此类推得到一个完整的有序数组... 阅读全文
posted @ 2014-06-15 14:56 NW_KNIFE 阅读(2003) 评论(0) 推荐(0) 编辑
摘要: 一. 算法描述 插入排序具体算法描述如下:从第一个元素开始,该元素可以认为已经被排序取出下一个元素,在已经排序的元素序列中从后向前扫描如果该元素(已排序)大于新元素,将该元素移到下一位置重复步骤3,直到找到已排序的元素小于或者等于新元素的位置将新元素插入到该位置后重复步骤2~5 举个例子:5 7... 阅读全文
posted @ 2014-06-13 21:05 NW_KNIFE 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 一. 算法描述 选择排序:比如在一个长度为N的无序数组中,在第一趟遍历N个数据,找出其中最小的数值与第一个元素交换,第二趟遍历剩下的N-1个数据,找出其中最小的数值与第二个元素交换......第N-1趟遍历剩下的2个数据,找出其中最小的数值与第N-1个元素交换,至此选择排序完成。 举个例子:5 ... 阅读全文
posted @ 2014-06-13 12:15 NW_KNIFE 阅读(300) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 23 下一页