随笔分类 -  数据结构和算法

1 2 下一页
python简单日志统计
摘要:最后,结果如下 当前ip被哪些用户登录了多少次 当前用户在哪些ip上登录过多少次 阅读全文
posted @ 2019-03-20 15:51 wzyy 阅读(413) 评论(0) 推荐(0) 编辑
单链表输出倒数第k个结点值(栈实现)
摘要:tip: 在上面的方法中: 参数有的是普通类型: 有的是地址类型: 有的是指针类型: 阅读全文
posted @ 2017-07-21 17:45 wzyy 阅读(768) 评论(0) 推荐(1) 编辑
二叉排序树的应用(java)
摘要:package com.tree.find; public class TestSearchBST { private static class BiNode{ int data; BiNode lchild; BiNode rchild; } public static b... 阅读全文
posted @ 2016-12-28 21:44 wzyy 阅读(756) 评论(0) 推荐(0) 编辑
查找算法(分割查找)
摘要:#include #include #include //顺序表查找 //从头到尾逐个比较,找到就返回下标,找不到返回0 //时间复杂度O(n) int Sequential_Search(int *array, int len, int key){ int i; array[0] = key; i = len; while(array[i] != key... 阅读全文
posted @ 2016-12-28 21:15 wzyy 阅读(328) 评论(0) 推荐(0) 编辑
堆排序
摘要:/* 利用完全二叉树的性质,一个线性数组可以看做是完全二叉树的层次遍历 每次循环把二叉树按照双亲大于左右孩子的规则调换位置,这样一轮下来,根结点就是最大的那个数 把根结点和最后一个元素交换位置 下一次循环继续调换位置,除了最后一个元素 再一次循环继续调换位置,除了最后一个和倒数第二个元素 依次类推。。。 */ #include #include typedef struct ... 阅读全文
posted @ 2016-12-26 20:42 wzyy 阅读(255) 评论(0) 推荐(0) 编辑
希尔排序(java)
摘要:时间复杂度为O( n^(3/2) )不是一个稳定的排序算法如何看一个算法是否稳定:{("scala",12),("python",34),("c++",12),("c",76),("java",44)}scala和c++的值相等,排序前scala在c++的前面如果排序后 {("scala",12),("c++",12),("python",34),("java",44),("c",76)}//s. 阅读全文
posted @ 2016-12-25 11:09 wzyy 阅读(228) 评论(0) 推荐(0) 编辑
冒泡排序
摘要:时间复杂度 O(n^2)package com.sort; public class BubbleSort { public static void swap(int list[], int i, int j){ int temp; temp = list[i]; list[i] = list[j]; list... 阅读全文
posted @ 2016-12-24 11:20 wzyy 阅读(196) 评论(0) 推荐(0) 编辑
最小生成树(Kruskal算法-边集数组)
摘要:以此图为例: 阅读全文
posted @ 2016-12-23 13:57 wzyy 阅读(1634) 评论(0) 推荐(0) 编辑
邻接表的广度优先遍历(java版)
摘要:遍历思路:线性数组存放着[v0,v1,v2,v3,v4]从0号元素开始 i=0;打印出v0,0入队0出队,去查找v0的邻接表,找到了v4打印出v4,4入队4出队,去查找v4的邻接表,找到了v2打印出v2,2入队2出队,去查找v2的邻接表,找到了v0,v3,因为v0是已访问过的打印出v3,3入队3出队 阅读全文
posted @ 2016-12-21 21:32 wzyy 阅读(1326) 评论(0) 推荐(0) 编辑
邻接矩阵的深度优先遍历(java版)
摘要:这是一个有向边带权的图顶点数组:[v0, v1, v2, v3, v4]边数组: v0 v1 v2 v3 v4 v0 6 v1 9 3 v2 2 5 v3 1 v4 package com.datastruct; import ja... 阅读全文
posted @ 2016-12-21 18:14 wzyy 阅读(2555) 评论(1) 推荐(1) 编辑
二叉树的创建和遍历(C版和java版)
摘要:java版本实现: 由于java没有c的指针,所以相对于c来说实现起来比较别扭,但思路没问题 在java中,不管这个节点是不是空节点,都会申请空间,只不过这个节点的数据、左子树、右子树都是null,但这个节点不是null,如下图 阅读全文
posted @ 2016-12-17 18:05 wzyy 阅读(300) 评论(0) 推荐(0) 编辑
亮灯问题
摘要:2015盏灯,一开始全部熄灭,序号分别是1-2015,先把1的倍数序号的灯的开关全部按一次,然后把2的倍数的灯的开关全部按一次,然后把3的倍数的开关按一次,以此类推,最后把2015的倍数灯的开关按一次。问最后亮着的灯有多少盏? A. 43 B. 44 C. 45 D. 46以下是博友的答案:按过奇数次的会亮。对除了1以外的所有数(1只按了一次),1和它本身肯定会按,除了这两次,只能按奇数次,所... 阅读全文
posted @ 2016-12-13 22:54 wzyy 阅读(885) 评论(2) 推荐(1) 编辑
分数的化简
摘要:题目:我们知道分数由分子和分母组成,所以给定你两个整数(可负,可正),第一个代表分子,第二个代表分母。你能不能把他们化为最简单的形式呢?例如: 输入: -4 8 ; 输出:-1/2void main(){ int a,b; int i=1; int flag=i;//最大公约数 int flag2=0;//a,b中负号的个数 scanf("%d %d",&a,&b); if(b == 0){... 阅读全文
posted @ 2016-12-12 21:45 wzyy 阅读(1115) 评论(0) 推荐(1) 编辑
字符串的朴素模式匹配算法
摘要:#include #include //返回第一个子串在主串的位置,找不到返回-1 int StrMatch(char *source, char *match){ int slen=strlen(source); int mlen=strlen(match); int i=0,j=0; while(i%d\n",result); }... 阅读全文
posted @ 2016-12-11 11:25 wzyy 阅读(629) 评论(0) 推荐(0) 编辑
汉若塔递归算法
摘要:#include //将i个元素从x通过y移动到z上 void move(int i, char x, char y, char z){ if(i==1){ printf("%c-->%c\n",x,z);//直接从x移动到z上 }else{ move(i-1,x,z,y);//将i-1个元素从x通过z移动到y上 printf(... 阅读全文
posted @ 2016-12-10 19:58 wzyy 阅读(340) 评论(0) 推荐(0) 编辑
LinkedList<E>源码分析
摘要:LinkedList的数据结构就是双向链表,如下所示: 构造器: add: get: remove: 阅读全文
posted @ 2016-12-05 19:53 wzyy 阅读(292) 评论(0) 推荐(0) 编辑
约瑟夫问题(java实现)
摘要:方法一、自定义的链表实现package com.code.yuesefu; public class YueSeFuList { public static void main(String[] args) { int count = 41;//申请一个指定长度的链表 Node n = YueSeFuList.createNodes(coun... 阅读全文
posted @ 2016-12-05 19:52 wzyy 阅读(1832) 评论(0) 推荐(0) 编辑
快慢指针原理--快速找到未知长度单链表的中间节点
摘要:package com.java.dataStruct; //节点类 public class Node { E item; Node next; public Node(){ } public Node(E element){ this.item = element; } public Node(E eleme... 阅读全文
posted @ 2016-11-28 22:17 wzyy 阅读(932) 评论(1) 推荐(0) 编辑
java实现单链表的整表创建
摘要:package com.java.dataStruct; public class Node { E item; Node next; public Node(){ } public Node(E element){ this.item = element; } public Node(E element, N... 阅读全文
posted @ 2016-11-28 21:35 wzyy 阅读(401) 评论(0) 推荐(0) 编辑
ArrayList<E>源码分析
摘要:1.属性 2.构造器 提供了3个构造器 3.添加数据 动态扩容策略 public static int[] copyOf(int[] original, int newLength) { int[] copy = new int[newLength]; System.arraycopy(origin 阅读全文
posted @ 2016-11-27 21:40 wzyy 阅读(469) 评论(0) 推荐(0) 编辑

1 2 下一页