![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
永远的烟火
我就是我,为绚丽绽放而厚积薄发的人间烟火
展开
-
八大内存排序算法
类型一、选择排序(1)冒泡排序:a.每趟排序,最大沉底;b.排列元素个数逐渐(从尾)减一,因为每趟排序,最后一位已确定;c.每次冒泡序列:0 ~ i-1TimeCost:O(N^2)SpaceCost:O(N)代码:void BubbleSort(int[] nums){ int i,j; for(i=nums.length; i>0; i--){ for(j=0; j<i; j++){ if(nums[j] > nums[j+1]) swap(原创 2020-06-02 20:24:40 · 2857 阅读 · 0 评论 -
求最值
思路:开始第一项赋为最值,后面一次比较,替换最值,一轮遍历即可;Time:O(N)Space:O(1)代码: public int maxValue(int[] nums) { int max = nums[0]; for(int i = 0;i < nums.length; i++) { max = max > nums[i] ? max : nums[i]; } return max; }原创 2020-06-01 11:34:56 · 248 阅读 · 0 评论 -
数组中只出现一次的数
1、一个整型数组里只有一个数字出现了一次,其余数字都出现了两次,请写程序找出出现了一次的数字。思路:XOR位运算,相同数字XOR为0,任何数字与零XOR为自己。此题数组一遍XOR就能找到出现一次的数 public int arrayXOR(int[] arr) { int temp = 0; for (int i = 0; i < arr.l...原创 2018-03-01 13:12:31 · 884 阅读 · 0 评论 -
统计一个数字在排序数组中出现的次数。
方法一:顺序遍历计数,时间复杂度O(n)方法二:二分搜索+“中心向两边”遍历,时间复杂度O(logn)+O(n)=O(n) public int GetNumberOfK(int [] array , int k) { int i,j,pos; pos = getK(array , k); if(pos==-1) ...原创 2018-02-28 18:10:25 · 366 阅读 · 0 评论 -
快速排序
//划分函数 O(log(n)) public int position(int[] array, int left, int right) { int i = left, j = right + 1; int pivot = array[left]; do { do { i++...原创 2018-03-08 11:09:22 · 97 阅读 · 0 评论 -
合并排序
合并排序原创 2017-11-05 21:09:53 · 948 阅读 · 0 评论 -
堆排序
堆排序原创 2017-11-05 22:12:22 · 184 阅读 · 0 评论 -
二叉树镜像
二叉树镜像原创 2017-11-18 22:39:41 · 135 阅读 · 0 评论 -
二叉树非递归遍历
二叉树非递归遍历原创 2017-11-18 22:15:16 · 145 阅读 · 0 评论 -
二叉树指定路径和
二叉树指定路径和原创 2017-10-29 18:16:55 · 513 阅读 · 0 评论 -
散列表
散列函数:把关键字的值映射到位置的函数。散列表:利用散列函数简历的表。一个实用的散列函数应当满足两个条件:1)能快速计算;2)具有均匀性。 均匀性:假设散列函数H(key)最多可取M个不同的值,即0目前有几个比较常用的散列函数1)除留余数法2)线性探查法3)二次探查法4)双散列法原创 2016-11-24 20:45:56 · 200 阅读 · 0 评论 -
最小代价生成树
Prim 和 Kruskal原创 2017-08-15 13:20:29 · 1718 阅读 · 1 评论 -
堆和优先权队列
堆和优先权队列原创 2017-08-14 17:31:02 · 592 阅读 · 0 评论 -
拓扑排序和关键路径
拓扑排序和关键路径原创 2017-08-13 16:11:10 · 619 阅读 · 0 评论