排序:
默认
按更新时间
按访问量

七种常见排序算法详解(直接插入、希尔、选择、冒泡、快速,归并、堆排序)

一、什么是排序? 【1】排序:就是将一组杂乱无章的数据按照一定的规律(升序或降序)组织起来。 数据表:待排序数据元素的有限集合。 排序码:通常数据元素有多个属性域,其中有一个属性域可用来区分元素,作为排序依据,该域 即为排序码。 如果在数据表中各个元素的排序码互不相同,这种排序码称为主排序...

2018-06-17 11:21:39

阅读数:118

评论数:0

合并K个有序链表(采用分治法、vector排序法分别实现)

一、合并K个链表 将n个已经有序的链表,合并成一个链表,使之有序 【1】排序法实现,时间复杂度为O(KNlogKN) 【2】分治法实现,时间复杂度为O(KNlogK) #include<iostream > #include&am...

2018-08-25 22:31:41

阅读数:22

评论数:0

复杂链表深度拷贝

一、复杂链表深度拷贝 【1】题目: 已知一个复杂链表,该链表除了有一个指向下一个节点的指针外,还有一个指向任意节点的指针, 求: 设计一种方法,拷贝构造该链表 【2】算法思路: 1、使用一个map,将链表的地址映射成一个整数,即给链表的每个节...

2018-08-25 22:15:59

阅读数:30

评论数:0

N皇后(递归经典算法)

一、N皇后 1、题目 将n个皇后摆放在N*N的棋盘中,互相不可攻击,有多少种摆放方式,每种摆放方式具体是怎样的? 2、解题思路 解题思路: 1、将棋盘放在一个二维数组中,同时设置方向数组: static const int dx[] = {-1,1,0,0,-1,-1...

2018-08-21 11:40:53

阅读数:35

评论数:0

回溯,递归,归并算法及使用场景

一、求子集a 1、题目 已知一组数(其中无重复元素),求这组数可以组成的所有子集; 结果中不可有重复的子集 例如: nums[] =[1,2,3] 结果为:【[], [1] , [1,2], [1,2,3], [1,3], [2] ,[2,3], [3] 】 解题思路: 利用栈(v...

2018-08-21 11:20:47

阅读数:46

评论数:0

常见的贪心算法使用场景

一、摇摆序列 1.1题目: ==========================author daiV================ 一个整数序列,如果两个相邻元素的差正好正负交替出现,则称该序列为摇摆序列。 一个小于两个元素的序列直接为摇摆序列; eg:{1,7,4,9,2,5},相...

2018-08-16 22:07:10

阅读数:39

评论数:0

栈、队列、堆总结

零、基本操作 /*栈的基本操作:*/ std::stack<int> s; s.top(); s.push(); s.pop(); s.empty(); s.size(); /*队列的基本操作:*/ std::queue&am...

2018-08-15 23:05:47

阅读数:37

评论数:0

链表总结

一、链表逆置 1、题目、已知一链表,求将其逆置后的链表 2、代码实现 #include<iostream> using namespace std; struct ListNode { int val; ListNode *nex...

2018-08-14 18:53:56

阅读数:24

评论数:0

贪心算法(人民币、分糖果)

一、贪心算法存于生活中 1、人民币支付问题 现在去超市买东西,结账时,要求支付一定金额的现金,那么,按照生活常识,我们肯定会选择尽可能少的拿出钱的张数去满足支付金额,比如说:应付628元,这时候,我的钱包里有足够多的以下面额的钱:100,50,20,10,5,2,1,那么,我肯定会拿出6张10...

2018-08-13 16:39:50

阅读数:83

评论数:0

使用多态实现一个线性表

/* 使用多态实现一个线性表(队列,串,堆栈) 要求: 具有线性表的基本操作:插入,删除,测长等。 思路: 队列,堆栈都以实现push,pop,测长等操作。 现在要求用多态实现,就要建立一个线性表的共性模板,来实现以上功能。 */ #include&am...

2018-08-08 15:45:41

阅读数:36

评论数:0

剑指offer 面试题57:和为s的数字

一、题目:和为S的两个数字 输入一个递增的排序的数组和一个数字,在数组中查找两个数, 使得它们的和正好是S,如果有多对数字的和等于S,就任意输出一对即可 二、示意图: 三、代码实现 #include<iostream> using na...

2018-08-06 13:37:52

阅读数:33

评论数:0

进程与线程详解

【0】目录 【1】什么是进程?什么是线程?什么是并发?什么是并行? 【2】多进程和多线程的区别? 【3】.进程间通信方式以及优缺点? 【4】.进程、线程的基本状态及状态之间的关系? 【5】.多线程有哪些实现方式? 【6】.什么时候用多线程?什么时候用多进程? 【7】.线程同步和线程异...

2018-08-05 18:33:08

阅读数:38

评论数:0

TCP三次握手及四次握手详解

TCP通信时序 一、概念 TCP是一种面向连接的、可靠的协议,点到点的协议。有点像打电话,双方拿起电话互通身份之后就建立了连接,然后说话就行了,这边说的话那边保证听得到,并且是按说话的顺序听到的,说完话挂机断开连接。也就是说TCP传输的双方需要首先建立连接,之后由TCP协议保证数据收发的可...

2018-07-30 12:33:32

阅读数:201

评论数:2

第一次笔试及面试总结与反思

一、字符串第二弹:两头堵模式 字符串问题中, 模拟实现strcpy,和strstr 是两大重点,现在介绍第三大重点,两头堵模式,即在形如" abcdefghijklmnopqrstuvwxyz "的字符串,去掉前后空格, 形成新的字符串...

2018-07-29 16:32:41

阅读数:86

评论数:0

智能指针-autoptr(建议不要使用)

一、引入 1、我们先看一段代码 void FunTest() { int *p = new int[10]; FILE* fp = fopen("1.txt","rb")...

2018-07-23 08:47:01

阅读数:52

评论数:0

使用DS12C887时钟芯片设计高精度时钟(单片机)

一.实验目的及要求 1、在1602液晶上显示年、月、日、星期、时、分、秒,并且按秒实时更新显示。 2、具有闹铃设定及到时报警功能 3、能够使用板上的按键调节各个参数。 4、每次有键按下时,蜂鸣器都以短“滴”报警。 二.实验内容 (1)实验原理图 DS12C887引脚结构及其功能如下:...

2018-07-15 10:18:47

阅读数:286

评论数:0

博弈游戏取石子

一、游戏思路:欢迎来到“取石子”游戏世界,这是一个减法游戏。两名对手交替从某给定的总数减去一个数,每个对手只能减去1或者2, 谁第一个把总数减到零或者更小的数算谁赢。比如说: (1)、我们从数字8开始,你先动手; (2)、你从总数里减去2,还剩下6; (3)、我也减去2,还剩下4; (4)...

2018-06-30 16:31:32

阅读数:919

评论数:0

[ ]、=、==、!= 运算符重载(以数组为例)

[ ],==,!=运算符重载

2018-05-09 14:08:05

阅读数:139

评论数:0

Complex复数类运算符重载(全局函数实现)

一、复数类重载相关基础知识 详情见上一篇博客,奉上链接 https://blog.csdn.net/dai_wen/article/details/80245987 这里展示Complex复数类运算符重载的另一种方式:利用全局函数实现 我们知道,在c++中,类的成员函数与全局函数可以互相转...

2018-05-09 08:17:00

阅读数:42

评论数:0

Complex复数类运算符重载(类的成员函数实现)

2018-05-08 21:16:50

阅读数:75

评论数:1

提示
确定要删除当前文章?
取消 删除
关闭
关闭