C++
xczexcel
自动化专业——模式识别与智能系统
展开
-
C++ 笔记
动态数组,C++中的vector支持动态数组特性:int N=10;vector<int> a(N) //初始化值为0的listvector<string> b(N) vector<vector<int>> a(N,vector<int>(M,0))//初始化一个二维数组int N=10;int *p=new i...原创 2018-07-04 18:15:12 · 149 阅读 · 0 评论 -
C++ STL 对应的数据结构
(1)vector:本质上是个数组,可忽略数组长度的限制,支持快速随机访问。插入操作比较耗时,需要移动元素,连续内存存储。支持[ ]操作。(2)list: 封装了双向链表,不支持[ ]操作,但可以实现快速的插入操作,不需要移动元素。(3)deque:双端队列,整合了vector与list的功能。(4)map:一棵红黑树,所以树的高度不超过logN+1,插入与查询的时间复杂度为O(log...原创 2018-07-27 15:38:24 · 453 阅读 · 0 评论 -
排序算法
(0)从终端读入数字并存储到list中的代码:#include<iostream>#include<vector>#include<sstream>#include<string>using namespace std;int main(){ vector<int> data_list; string li...原创 2018-09-23 11:37:57 · 161 阅读 · 0 评论 -
排序算法总结
选择排序:(1)选择排序:两层循环,内层找最小值,外层遍历,进而实现交换,可以用于求Top K的问题,这种情况下内层循环只要执行K次。(2)堆排序:先构建一个堆(有序的完全二叉树),这个过程中最多执行N次比较与2N次交换,之后依次取出堆顶元素,然后将处于数组最后的元素置于堆顶,下沉,使得二叉堆再次有序。(利用一个数组的1-N+1存储堆中的元素)。取堆顶元素然后下沉的过程有点类似选择排序,只...原创 2018-10-11 15:42:26 · 206 阅读 · 0 评论 -
C++ 快慢指针求ListNode中点
用快慢指针求ListNode的中点,网上的答案大都是下面这个:struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} };class Solution {public: ListNode* middleNode(ListNode* h...原创 2018-10-04 16:30:58 · 508 阅读 · 1 评论 -
二分查找中的边界问题
二分查找思路比较容易,但是总是在边界上容易出问题,总结得到以下两个思路:int binary_search_before(vector<int> &nums, int target){//在有序nums中查找target的直接前驱,包括target int l=0; int r=nums.size()-1; while(l<r){ ...原创 2018-10-05 19:14:28 · 592 阅读 · 0 评论 -
stack实现二叉树的先序与中序遍历
(1)利用stack实现二叉树的先序与中序遍历,程序基本差不多,访问的顺序不同,后续遍历就要麻烦许多。中序遍历:#include<stack>#include<vector>using namespace std;struct TreeNode { int val; TreeNode *left; TreeNode *right...原创 2018-10-06 15:33:59 · 788 阅读 · 1 评论 -
排序算法——第K大的数
在求一个list中第K大的数的时候,可以先排序,再提取,但复杂度有nlogn,当然也可以像求取top K一样,利用堆排序或选择排序或者冒泡排序,但对堆排序而言有KlogN,其他的两个分别为KN,如果利用快速排序改进的话,时间复杂度可以降到N级别。思路:每次做完partition之后,统计大于基准值的元素个数n,如果n>k,则在较大的一侧中继续寻找Kth value,否则在较小的一侧寻...原创 2018-10-14 14:54:31 · 581 阅读 · 0 评论 -
np的一些操作
import numpy as npa=np.arange(0,12)b=a.reshape((-1,1)) # b with shape 12,1c=a.reshape((1,-1)) # c with shape 1,12b=np.tile(b,[1,12]) # 将最里面的维度重复12遍, new shape: 12,12c=np.tile(c,[12,1]) # 将第二维度重复...原创 2018-12-17 21:36:36 · 421 阅读 · 0 评论