
算法
JN2002
这个作者很懒,什么都没留下…
展开
-
堆排序C++实现(算法导论)
注:文章算法部分来自C++ 堆排序算法的实现与改进(含笔试面试题) - MISAYAONE的博客 - 优快云博客 https://blog.youkuaiyun.com/misayaaaaa/article/details/65999854#include "stdafx.h"#include <iostream>#include <vector>using namesp...原创 2018-11-27 11:28:43 · 244 阅读 · 0 评论 -
n个字符串找出重复最多的前十个字符串
使用优先队列构建最小堆,不用使用vector数组再排序,优先队列详解(优先队列和queue不同的就在于我们可以自定义其中数据的优先级, 让优先级高的排在队列前面,优先出队,优先队列具有队列的所有特性,包括基本操作,只是在这基础上添加了内部的一个排序,它本质是一个堆实现的)#include "stdafx.h"#include<iostream>#include<m...原创 2019-08-07 12:04:42 · 859 阅读 · 0 评论 -
【剑指offer-10、位运算】二进制1的个数
10、二进制1的个数题目描述:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。解法一:不好!!!负数容易死循环(思想:先判断整数二进制表示中最右边1位是不是为1,然后右移一位)//解法一int Numberof1(int n){ int count = 0; while (n) { if (n & 1) count++; n=n >...原创 2019-07-15 15:50:19 · 124 阅读 · 0 评论 -
查找算法
https://www.baidu.com/link?url=_AdIZJpaqr1Fixqqjyfyt898yPfug8ACATsMTFd150Rxwl8NddDnprTN_6lH_XTS1_dI2f6UPcqoRAUxD2I1e8bxl2kBM3irn7de4nXNfNS&wd=&eqid=9bc5150300152faa000000035d25a968二分查找:1、元...转载 2019-07-10 17:04:31 · 103 阅读 · 0 评论 -
排序算法2—归并、快速排序
4、归并排序https://blog.youkuaiyun.com/left_la/article/details/8656953最好、最坏、平均时间性能都为O(nlogn)空间复杂度O(n+logn)归并排序是一种占用内存,但效率高且稳定的算法//归并排序void Merge(int *a, int p, int q, int r){ //1、分配空间 int n1 = q -...原创 2019-07-10 15:31:21 · 103 阅读 · 0 评论 -
实现Zigzag数组,C++实现
题目描述:输入n,求一个n*n矩阵,规定矩阵沿45度线递增,形成一个zigzag数组,C++实现#include "stdafx.h"#include<iostream>using namespace std;void main(){ int N;//矩阵大小 cin >> N; cout << endl; int **arr=new i...原创 2019-07-04 21:40:19 · 854 阅读 · 0 评论 -
排序算法1—冒泡、简单选择、插入排序
需要掌握冒泡排序、插入排序、归并排序、快速排序1、冒泡排序时间复杂度分析:排序在最好的情况时,即序列本身有序,时间复杂度为O(n)最差的情况时,即序列逆序时,时间复杂度为n(n-1)/2,即o(n*n)注意:注意观察这个冒泡的内循环写法,这种冒泡比一般从前面开始比较的冒泡,算法效率稍微好一点,具体可参考《大话数据结构》p380。void BubbleSort(int ...原创 2019-07-09 16:04:13 · 164 阅读 · 0 评论 -
螺旋队列算法分析
详细说明见博客https://blog.youkuaiyun.com/yhmhappy2006/article/details/2934435题目描述:设1的坐标是(0,0),x方向向右为正,y方向向下为正,例如,7的坐标为(-1,-1),2的坐标为(1,0)。编程实现输入任意一点坐标(x,y),输出所对应的数字!有图可知:每圈最大值max=(2*c+1)(2*c+1),c为由内往外的圈数,c&...原创 2019-07-08 21:31:17 · 131 阅读 · 0 评论 -
二叉搜索树的前驱和后继节点
查找前驱节点规则若一个节点有左子树,那么该节点的前驱节点是其左子树中val值最大的节点若一个节点没有左子树,那么判断该节点和其父节点的关系 2.1 若该节点是其父节点的右边孩子,那么该节点的前驱结点即为其父节点。 2.2 若该节点是其父节点的左边孩子,那么需要沿着其父亲节点一直向树的顶端寻找,直到找到一个节点P,P节点是其父节点Q的右边孩子,那么Q就是该节点的后继节点查找后继节点规则...原创 2019-01-10 11:32:58 · 868 阅读 · 0 评论 -
快速排序(算法导论)
快排思想:(1)随便取一个数为基准,一般选择最后一个数 (2)然后从头遍历,将比基准数小的放在左边,大的放在右边,放的时候用交换规则换; (3)在左右两边重复此步骤,直至不能分解为止。#include "stdafx.h"#include<iostream>#include<vector>using namespa...原创 2018-11-27 11:26:18 · 922 阅读 · 0 评论 -
编程题
题目描述: 输入一个整形数组(可能有正数和负数),求数组中连续子数组(最少有一个元素)的最大和。int res=test[0];int tmp=test[0];for(int i=1;i<n;i++){ tmp=max(tmp+test[i],test[i]); res=max(res,tmp);}cout<<res<<endl;回...原创 2019-09-03 20:22:10 · 204 阅读 · 0 评论