Fork me on GitHub

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

数据结构与算法
摘要:58大神讲解时间复杂度 补充: 当然,还要考虑一个函数需要遍历这个集合几次。。。例如:一个循环找最大数的算法是O(N),那么找最大的三个数的算法应该是O(3N)而不能是O(N)...这样。。 阅读全文
posted @ 2016-09-08 15:13 _落雨 阅读(441) 评论(0) 推荐(0) 编辑
摘要:```java void swap(int &a,int &b){ a=a^b; b=a^b; a=a^b;} ``` 阅读全文
posted @ 2015-10-30 10:31 _落雨 阅读(201) 评论(0) 推荐(0) 编辑
摘要:###java数据结构系列之栈##手写栈## 1.利用链表做出栈,因为栈的特殊,插入删除操作都是在栈顶进行,链表不用担心栈的长度,所以链表再合适不过了,非常好用,不过它在插入和删除元素的时候,速度比数组栈慢,因为它要维护自己的指针(Next)引用。```javapackage com.rsc.sta... 阅读全文
posted @ 2015-06-05 16:49 _落雨 阅读(257) 评论(0) 推荐(0) 编辑
摘要:###java算法系列之排序##手写冒泡冒泡算是最基础的一个排序算法,简单的可以理解为,每一趟都拿i与i+1进行比较,两个for循环,时间复杂度为 `O(n^2)`,同时本例与选择排序进行了比较,选择排序又叫直接排序,之所以直接,就是简单粗暴,不像冒泡,冒泡是紧挨着的两个小伙伴两两比较,直接排序是每... 阅读全文
posted @ 2015-06-05 11:17 _落雨 阅读(240) 评论(0) 推荐(0) 编辑
摘要:###java算法系列之排序##手写快排首先说一下什么是快排,比冒泡效率要高,快排的基本思路是首先找到一个基准元素,比如数组中最左边的那个位置,作为基准元素key,之后在最左边和最右边设立两个哨兵,`i` 和 `j` 之后,开始按住左哨兵(i),让右哨兵(j)往左走(j--),找到比key小的元素后... 阅读全文
posted @ 2015-06-04 15:46 _落雨 阅读(277) 评论(0) 推荐(0) 编辑
摘要:有n个人围城一圈每次从1数起数到3就把那个人提出圈子,最后只保留一个人。输入:输入人数字符串输出:把最后一个人所保留位置返回出来。比如你输入11的话即有11个人[1,2,3,4,5,6,7,8,9,10,11]。返回的是7解题:package sj1; import java.util.ArrayL... 阅读全文
posted @ 2014-06-10 10:32 _落雨 阅读(230) 评论(0) 推荐(0) 编辑