精华内容
下载资源
问答
  • 推荐一个比较实用的GitHub项目,目前star接近四千,主要讲数据结构和算法必知必会的50个代码实现。有多个语言版本实现的数据结构和算法实例。项目地址https://github.com/wangzheng0822/algo内容数组实现一个支持...

    推荐一个比较实用的GitHub项目,目前star接近四千,主要讲数据结构和算法必知必会的50个代码实现。

    3124641cd41f88de2d754bca72c9b90e.png

    有多个语言版本实现的数据结构和算法实例。

    15a1b3ff0894d9ea035364ec5bbea2a3.png

    项目地址

    https://github.com/wangzheng0822/algo

    内容

    数组

    • 实现一个支持动态扩容的数组
    • 实现一个大小固定的有序数组,支持动态增删改操作
    • 实现两个有序数组合并为一个有序数组

    链表

    • 实现单链表、循环链表、双向链表,支持增删操作
    • 实现单链表反转
    • 实现两个有序的链表合并为一个有序链表
    • 实现求链表的中间结点

    • 用数组实现一个顺序栈
    • 用链表实现一个链式栈
    • 编程模拟实现一个浏览器的前进、后退功能

    队列

    • 用数组实现一个顺序队列
    • 用链表实现一个链式队列
    • 实现一个循环队列

    递归

    • 编程实现斐波那契数列求值f(n)=f(n-1)+f(n-2)
    • 编程实现求阶乘n!
    • 编程实现一组数据集合的全排列

    排序

    • 实现归并排序、快速排序、插入排序、冒泡排序、选择排序
    • 编程实现O(n)时间复杂度内找到一组数据的第K大元素

    二分查找

    • 实现一个有序数组的二分查找算法
    • 实现模糊二分查找算法(比如大于等于给定值的第一个元素)

    散列表

    • 实现一个基于链表法解决冲突问题的散列表
    • 实现一个LRU缓存淘汰算法

    字符串

    • 实现一个字符集,只包含a~z这26个英文字母的Trie树
    • 实现朴素的字符串匹配算法

    二叉树

    • 实现一个二叉查找树,并且支持插入、删除、查找操作
    • 实现查找二叉查找树中某个节点的后继、前驱节点
    • 实现二叉树前、中、后序以及按层遍历

    • 实现一个小顶堆、大顶堆、优先级队列
    • 实现堆排序
    • 利用优先级队列合并K个有序数组
    • 求一组动态数据集合的最大Top K

    • 实现有向图、无向图、有权图、无权图的邻接矩阵和邻接表表示方法
    • 实现图的深度优先搜索、广度优先搜索
    • 实现Dijkstra算法、A*算法
    • 实现拓扑排序的Kahn算法、DFS算法

    回溯

    • 利用回溯算法求解八皇后问题
    • 利用回溯算法求解0-1背包问题

    分治

    • 利用分治算法求一组数据的逆序对个数

    动态规划

    • 0-1背包问题
    • 最小路径和
    • 编程实现莱文斯坦最短编辑距离
    • 编程实现查找两个字符串的最长公共子序列
    • 编程实现一个数据序列的最长递增子序列
    展开全文
  • 算法频度怎么算

    千次阅读 2020-02-27 16:52:09
    来看一组经典代码 double MATRIX( int A,int B,int C,int n ) for (i=1;i<=n;i++)-------------------------------n+1 for (j=1;i<=n;j++)---------------------------n(n+1) C[i, j]=0--...

    来看一组经典代码

    double  MATRIX( int A,int B,int C,int n )
         for (i=1;i<=n;i++)-------------------------------n+1
             for (j=1;i<=n;j++)---------------------------n(n+1)
                 C[i, j]=0--------------------------------n^2
                 for  (k=1;k<=n;k++)----------------------n^2(n+1)
                     C[i, j]=C[i, j]+A[i, k]B[k, j]------n^3
                end
            end 
         end
    end
    

    如果说有疑问,肯定出在有n+1的三个地方,为什么会有n+1?
    很简单,频度计算时看的是执行过几次(包括判断),问题就在最后一次判断上。计算频度时,最后一次判断是计算在内的。

    for (j=1;i<=n;j++)---------------------------n(n+1)为什么不是n^2?
    因为上一行对于这一行而言执行了n次,而不是n+1次,即在for (i=1;i<=n;i++)执行了n次的前提下,for (j=1;i<=n;j++)执行了n+1次(包括判断),相乘后为n(n+1)。

    展开全文
  • 语句频度 T(n)称为时间频度,指的是该语句重复执行的次数 例题一: 矩阵相乘的关键代码 1 for(int i=0;i<n;i++) n+1 2 for(int j=0;j<n;j++) n(n+1) 3 c[i][j]=0; n*n 4 for(int k=0;...

    语句频度 T(n)称为时间频度,指的是该语句重复执行的次数

    例题一:
    在这里插入图片描述
    矩阵相乘的关键代码

    1 for(int i=0;i<n;i++)							n+1
    2 	for(int j=0;j<n;j++)						n(n+1)
    3 		c[i][j]=0;								n*n
    4			for(int k=0;k<n;k++)				n*n*(n+1)
    5				c[i][j]+=a[i][k]*b[k][i];		n*n*n
    

    分析:
    第一句:i执行0-n,最后一次有判断所以需要加一,执行的总次数是n-1.
    第二句:在第一个for的基础上,i每执行一次j执行n+1次,但是第二个for最后一次也要判断一下是否需要退出循环所以也要加1,为什么第一个for不需要加一是因为当i=n时,已经跳出循环了,不会再执行下面语句了,所以执行总的次数是n(n+1)
    第三句:第一个for和第二个for执行的范围是[0,n-1],都执行n次,不会判断是否要退出。
    第四句第五句:同上分析
    O(n^3)

    例题二:
    在这里插入图片描述

    分析:
    假设k=2代入,4进去while出来减半为2,2进去while出来减半为1,一共执行了三次。
    第一句:k+1
    第二句:n
    在这里插入图片描述

    例题三:
    在这里插入图片描述

    第五句:
    在这里插入图片描述

    展开全文
  • 代码如下,这个时间复杂度为什么不是O(n)而是O(Ln(n))? 此外,这道题的频度T(n)又是多少? ``` while(n!=0) { n=n/2; } ```
  • 用动态链表统计字符频度:(用c语言写,最好是调试成功的完整代码,并详细注释,字符不只是24个英文字符,还有数字,空格等) 创建动态链表、加节点; 已读入的字符数据传递给动态链表处理模块; 使用链表结构...
  • 打印字符频度直方图--C语言实现

    千次阅读 2013-04-28 22:50:27
    编写一个程序,打印输入中各个字符出现频度的直方图。 对应的参考书中提供了一种解法,但是没有想象之中的美妙。于是乎,自己动手写代码。 源代码 我的代码,自我感觉良好。 # include int main(void){ int a[26]...

    欢迎访问我的新博客:http://www.milkcu.com/blog/

    原文地址:http://www.milkcu.com/blog/archives/1367131800.html

    前言

    该题摘自Kernighan的《C程序设计语言》第17页练习1-14。

    编写一个程序,打印输入中各个字符出现频度的直方图。

    对应的参考书中提供了一种解法,但是没有想象之中的美妙。于是乎,自己动手写代码。

    源代码

    我的代码,自我感觉良好。

    # include <stdio.h>
    
    int main(void){
    	int a[26];
    	int c;
    	int i;
    	int j;
    	
    	for(i = 0; i <26; i++){
    		a[i] = 0;
    	}
    	while((c =getchar()) != EOF){
    		for(i = 'a'; i <= 'z'; i++){
    			if(c == i){
    				a[i - 97]++;
    			}
    		}
    	}
    	for(i = 0; i < 26; i++){
    		if(a[i] != 0){
    			printf("%c  ", i + 97);
    			for(j = 0; j < a[i]; j++){
    				putchar('*');
    			}
    			putchar('\n');
    		}
    	}
    	return 0;
    }

    后记

    五一“长”假马上正式开始了,大家节日快乐。博客总该要写点什么吧,就搬出这个小程序来了。

    展开全文
  • 案例: 1、某随机序列[12, 5, 6, 4,6, 5, 12,... 方案1:将序列转换为字典{元素: 频度},根据字典的值排序 方案2: 使用标准库collections中的Counter 代码: from random import randint #随机生成30个在...
  • php中有一个函数array_count_values(),我们可以用它来... 实例代码如下: <?php $writers=array('月关','石章鱼','水叶子','月关','盛天','石章鱼'); $writerFrequency=array_count_values($writers); print_...
  • 举例 1、统计随机序列中出现次数最高的三个元素,并显示它们出现的次数。 2、统计英文文章中出现次数最高的10个单词,并显示它们出现的频次。 ...统计序列中出现次数最高的三个单词 ...代码如下: from ...
  • 问题及代码: /* *Copyright (c)2016,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:table.cpp *作 者:单昕昕 *完成日期:2016年3月23日 *版 本 号:v1.0 * *问题描述:设有一个双链表,每个结点...
  • 【背景】 一个pivot中有三个pivotItem项,每个pivot中有一...通过DispatcherTimer控制请求的频度。 【代码】 1 private DispatcherTimer timer; 2 3 构造函数(){ 4 // 通过计时器控制请求,防止每...
  • 排序算法 内部排序:直接使用内存的排序 直接插入排序,希尔排序,...代码: import java.text.SimpleDateFormat; import java.util.Date; //排序前的时间输出 Date date = new Date(); SimpleDateFormat s
  • 字符频度统计【C语言】【数据结构C语言版...源代码 #include <stdio.h> #include <stdlib.h> #include <string.h> void charCount() { int i,j,digit_num[10],cap_num[26]; char ch; FILE *fp =
  • 打印输入中各个字符出现频度的直方图(垂直),输入任意字符 话不多说,直接附上结果和代码。个人测试没问题,有bug欢迎大家指正! 代码: #include <stdio.h> int main() { int c,i,j,star; int get_c[20...
  • 直接上代码 public class StringTest {    /**  * 任意给定英文字符串,求出各个字母出现的次数,并按照字母出现的次数从高到低排序。  * 思路:  * 1、先建立一个map,存储对应的字母以及次数 key-value,  * ...
  • 聪明的代码

    2018-05-15 15:16:28
    在《数据算法Hadoop/Spark大数据处理技巧》一书中的第五章的反转排序中有一段映射器的代码能够得到领域为2的所有频度计数,代码量不大,但是思路让人敬佩。 Input:java is a great language output: (java,*) 2 ...
  • 针对克隆代码稳定性评价方法少且准确度低等问题,提出了一种以含bugs的代码文件修改频度为标准的评价克隆代码稳定性的方法。首先从软件版本管理系统中获取软件bugs的修复日志并进行标准化处理;其次从bugs管理系统中...
  • C语言程序设计(第二版) 练习1-14 个人设计编写一个程序,打印输入中各个字符出现频度的直方图(水平)代码块#include <stdio.h>main() { int c, nletter, nwhite, nother, i; /*定义字符,字母个数,空白个...
  • 基于概率的协同过滤推荐算法代码实现(附源代码)一、云模型介绍针对传统推荐系统数据稀疏、相似性计算方法导致共同评分用户少的问题,提出利用云模型概念与定量数值转换的优势,研究云模型(百度百科查看概念)的...
  • 代码离不开好用顺手的IDE或者是编辑器,sublime就是我尝试过多个编辑器后最终选定的使用频度最高的工具了,相比于PyCharm来说,虽然部分功能有所欠缺,但是瑕不掩瑜,还是很不错的。 今天发现了一款很强大的代码...
  • 这是一道很普通的题目,这里给出的代码的一个关键点就是使用字符的ASCII码作为数组的下标直接对该字符。 #define _CRT_SECURE_NO_WARNINGS #include #include struct Freq { char alpha; int freq; }; ...
  • SRILM源代码仔细分析

    2018-05-06 17:11:41
    SRILM源代码阅读笔记。 主要针对SRILM的ngram的训练,即ngram-count。 7个文件: 1.类图.jpg:与ngram-count相关的主要类的静态图(使用了starUML的逆向工程工具); 2.ngram-count.jpg:从语料训练出模型的主要...
  • 问题及代码: /*打印输入中各个字符出现频度的直方图*/ #include #include #define MAXHIST 15 //最大直方图长度 #define MAXCHAR 128 //最大的不同字符 #define IN 1 //单词内 #define OUT 0 //单词外 int main...
  • 思路 ...代码 DLNode Locate(DLinkList &L,ElemType x){ LNode *p=L->next,*r; //找到值为x的结点DD while(p!=NULL&&p->data!=x) p=p->next; p->freq++; r=p-&g...
  • 实验结果表明,基于恶意代码纹理特征以及指令频度特征,利用栈式自编码分类算法对恶意代码具有较好的分类能力,其分类准确率高于传统浅层机器学习模型(随机森林、支持向量机),相比随机森林的方法提高了2.474%,...
  • 根据关键词爬取历史微博热搜写在最前一些废话爬虫功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右...
  • 尤其像知道哪些蜘蛛对本站进行了访问,访问的频度,页面,普通的站点统计都是无法解决的。 虽然我对PHP了解的很少,但是凭借.NET的开发经验,借助百度仍然很快的完成了,虽然简单,大家莫笑。 复制代码 代码如下: //...
  • SRILM源代码分析笔记

    热门讨论 2012-09-04 11:30:36
    SRILM源代码阅读笔记。 主要针对SRILM的ngram的训练,即ngram-count。 7个文件: 1.类图.jpg:与ngram-count相关的主要类的静态图(使用了starUML的逆向工程工具); 2.ngram-count.jpg:从语料训练出模型的主要...
  • 数据结构实验代码

    千次阅读 2018-10-21 21:43:20
    抽象数据类型的表示与实现 一、实验目的及要求 (1)了解非数值问题的数学模型不是数学方程,而是表、树和图之类的数据结构。 (2)理解数据、数据元素、数据对象、...(4)会根据语句频度估算算法的时间复杂度。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 440
精华内容 176
关键字:

代码频度