算法
文章平均质量分 65
liminlimin_limin
这个作者很懒,什么都没留下…
展开
-
插入排序算法
主要思想:在已经排好序的子数组A[1..i-1]中,插入元素A[i],形成排好序的子数组A[1..i]。代码://插入排序——最形象的事例:打纸牌#include #include using namespace std;int main(){ //接收排序数据 vector sort_data; float data; while ((cin>>data)&&(da原创 2013-09-29 19:43:09 · 540 阅读 · 0 评论 -
合并排序算法
主要思想:不断将已经有序的子数组A[p..q]和A[q+1..r]合并为新的有序的数组A[p..r]。具体过程可如下操作: 分解:将n个元素分成各含n/2个元素的子序列; 解决:对两个子数组递归地排序; 合并:合并两个已经有序的子数组得到最终的有序数组。代码://合并/归并排序——分原创 2013-09-29 19:58:19 · 650 阅读 · 0 评论 -
堆排序
1、主要思想: 对数组每一次建最大堆(分别对子树进行建最大堆)可以保证最大数据是第一个元素,每次获取最大数据后,将最大数据删除(与最后一个数据交换,整个数组长度减1),对新的数组重新建堆,依次执行到所有的数据均显示完成。2、代码://堆排序#include #include using namespace std;void max_heap(vector &da原创 2013-10-20 14:40:31 · 492 阅读 · 0 评论 -
快速排序
1、主要思想: 利用分治策略,将数组A[l..r]划分成两个子数组A[l..q-1]和A[q+1..r],使得A[l..q-1]中的每一个元素小于等于A[q],A[q+1..r]中的每一个元素大于A[q],再通过递归调用快速排序算法对子数组A[l..q-1]和A[q+1..r]排序,递归处理后的数组A[l..r]即为已排序的数组。2、代码://快速排序——分治策略#inc原创 2013-10-20 16:46:11 · 470 阅读 · 0 评论 -
计数排序
1、主要思想: 借助一个中间数组data_b来保存data数组中任意小于或等于data[i]元素的个数,以此来定位data[i]在数组中的位置(按大小排序的第几位)。该过程中不存在任意两个数之间的比较。2、代码://计数排序#include #include using namespace std;void count_sort(vector data,int原创 2013-10-23 19:42:23 · 524 阅读 · 0 评论 -
基数排序
/**利用基数排序算法排序数组A=**//****************************************************************************基数排序核心思想:将每一个元素拆分按位从低到高来处理,对每一位的处理过程依赖稳定的中间排序算法,如:计数排序等。其时间复杂度也基于中间排序算法,能在O(n)时间内完成。***********原创 2013-10-23 22:31:35 · 619 阅读 · 0 评论 -
最长回文字符串
第一次接触回文字符串是在原创 2014-05-05 22:10:10 · 646 阅读 · 0 评论