![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法导论
文章平均质量分 66
Xiejunyi12
这个作者很懒,什么都没留下…
展开
-
优化快速排序 C语言代码
//写了一下对快速排序的各种优化//证明的话有时间会写出分析//只自己打了一些代码大家随意看看//如果有错误的还望指正//针对快速排序做了如下几种优化1.与插入排序结合2.随机化主元3.三数取中划分4.针对含有大量重复元素的优化原创 2016-01-20 00:28:11 · 1083 阅读 · 0 评论 -
快速排序的插排随机主元三数取中优化C语言实现
***//写了一下对快速排序的各种优化//证明的话有时间会写出分析//只自己打了一些代码大家随意看看//如果有错误的还望指正***#define K 11#include <stdio.h>#include <stdlib.h>#include <time.h>#define N 30000int m,n;int *p1=&m;int *r1=&n;//quick sort原创 2016-01-21 18:58:30 · 1367 阅读 · 0 评论 -
排序算法的稳定性
稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,ri=rj,且ri在rj之前,而在排序后的序列中,ri仍在rj之前,则称这种排序算法是稳定的;否则称为不稳定的。处理带有卫星数据的值时,算法的稳定性尤为重要一些稳定的排序算法: 冒泡排序 插入排序 计数排序 基数排序 归并排序不稳定的排序算法: 堆排序 快速排序 希尔原创 2016-01-21 22:00:53 · 849 阅读 · 0 评论 -
循环队列的实现与分析,两种方法,算法导论10.1-4
循环队列中,由于入队时尾指针向前追赶头指针;出队时头指针向前追赶尾指针,造成队空和队满时头尾指针均相等。因此,无法通过条件front==rear来判别队列是"空"还是"满"。 解决这一问题有两种方法1.设置计数器判断2.队满时:(rear+1)%n==front,n为队列长度(所用数组大小),由于rear,front均为所用空间的指针,循环只是逻辑上的循环,所以需要求余运算。N模运算得出的结果 永远在0~N-1之间,原来 如果你的队列可以储存的数据跟数组长度相同时 无法解决头尾指针相等时,对队列空满原创 2016-01-25 17:49:26 · 1384 阅读 · 0 评论 -
二叉树的迭代前中后遍历以及不用栈的遍历C语言
二叉树的遍历方法有1.迭代2.递归相比较来说迭代的实现较为复杂,后序遍历最为复杂。给出了一些算法与代码1.前序遍历2.中序遍历3.后序遍历4.不用栈的中序遍历原创 2016-01-26 21:36:00 · 932 阅读 · 0 评论 -
字典树C语言实现
字典树又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。#include #include using namespace std;#defi原创 2016-01-30 11:41:57 · 7886 阅读 · 0 评论 -
第15章 动态规划 算法导论
动态规划常用来解决最优化问题,在这类问题中,我们通过做出一组选择来达到最优解。在做出每个选择的同时,通常会生成与原问题形式相同的子问题。当多于一个选择子集都生成相同的子问题时,动态规划技术通常会很有效。关键技术 :对每个这样的子问题都保存其解,当重复出现时即可避免重复求解。我们通常按照如下四个步骤来设计一个动态规划算法:1.刻画一个最优解的结构特征。2.递归的定义最优解的值。原创 2016-02-11 22:22:58 · 888 阅读 · 0 评论