算法
文章平均质量分 68
秋实_hsg1040175759
C/C的菜鸟但我会一直努力让自己变得更强怀着梦想出发希望结交和我一样怀有梦想的朋友e-mail:hsg1040175759@163.com
展开
-
快速排序算法 QuickSort
1、快速排序算法思想: 选择一个关键值,通常是数组中的一个元素(首个元素或者最后一个元素),通过一趟排序将所有元素与关键元素比较,将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,并将该关键元素放到正确的位置上,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 2、操作步骤: 说原创 2013-04-27 12:20:11 · 379 阅读 · 0 评论 -
希尔排序算法 ShellSort
一、希尔排序的思想: 实质是插入排序的一个变种,其核心思想为:对n个元素的待排序数组,先取一个小于n的整数d1作为第一个增量,将n个数据分成d1个组每组n/d1个元素,将所有距离为d1整数倍的元素分为一组,在各组内进行插入排序,然后取小于d1的整数d2作为第二个增量,重复上述分组和排序,直至所取增量dt=1(dt 二、操作步骤: 1、取增量dt = n / 2原创 2013-04-29 15:56:22 · 323 阅读 · 0 评论 -
桶排序算法 BucketSort
一、桶排序算法思想: 待排序数组A[1...n]内的元素是随机分布在[0,1)区间内的的浮点数,辅助排序数组B[0....n-1]的每一个元素都连接一个链表,即每个元素就是一个桶,将A内每个元素乘以N(数组规模)取整,并以此为索引插入(插入排序)数组B的对应位置的链表中,最后将所有的非空链表依次连接起来就是排序结果。 二、操作步骤: 1、设置一个指针数组,其每原创 2013-04-29 17:40:43 · 470 阅读 · 0 评论 -
插入排序 InsertionSort
1、插入排序的思想: 将待排序的数组的第一个元素插入到已经排好序的数组中。这是原地排序,即所有数据都在一个数组中实现排序。 假设:一共n个数据存放在数组A中,其中A[0]……A[j-1]已经排好序,A[j]……A[n-1]是待排序的。 排序的思路:将从待排序的数组(A[j]……A[n-1])中取第一个元素,插入到已经排好序的数组(A[0]……A[j-1])中。 2、原创 2013-04-07 22:13:40 · 458 阅读 · 0 评论 -
归并排序算法 MergeSort
1、归并排序算法的思想: 是分治法的体现:将所有待排序数进行分组,直到有序,即每个组只有一个元素的时候是有序的,然后两两有序合并,直到合并成一个有序数组。 2、操作步骤: (1)将所有元素的数组num[]分组,1/2分组,采用递归分组: num左、右两组为num[p]--num[q]和num[q+1]--num[r]两组,q = (p+r原创 2013-04-25 21:04:11 · 377 阅读 · 0 评论 -
冒泡排序 BubbleSort
一、思想: 冒泡排序,顾名思义,把待排序数据中最小的数(也可以是最大)像气泡似的从待排序数据中提出去,直接排到待排序数据的最前面。 二、操作步骤: 1、取第一个元素,依次与后面的每一个元素比较,如果后面的元素比它小,就交换,这样保证,第一个元素始终是较小的数,与最后一个元素比较后,则第一趟比较下来,就把待排序数据中的最小数排到了最前面。 2、拿第二原创 2013-05-11 21:41:30 · 388 阅读 · 0 评论