自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

转载 线程取消(pthread_cancel)

基本概念pthread_cancel调用并不等待线程终止,它只提出请求。线程在取消请求(pthread_cancel)发出后会继续运行,直到到达某个取消点(CancellationPoint)。取消点是线程检查是否被取消并按照请求进行动作的一个位置.与线程取消相关的pthread函数int pthread_cancel(pthread_t thread)发送终止信号给t...

2018-02-08 16:35:00 107

转载 文件压缩

1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 #include <conio.h> 5 #include <time.h> 6 struct node{ 7 long weight; //...

2017-12-21 10:37:00 110

转载 网格走法

网格,最左上角顶点的坐标是(1,1),机器人从(1,1)出发,一次走一格,只能往下或往右走,问到(x,y)有几种走法?设f(x,y)是到(x,y)的走法总数,则当x = 1时,f(x,y) = 1当y = 1时,f(x,y) = 1当x >1 且 y > 1时,f(x,y) = f(x -1,y) + f(x,y-1)int Num(int x,int...

2017-12-15 14:30:00 284

转载 旋转n阶矩阵

1 2 34 5 67 8 9顺时针旋转90度7 4 18 5 29 6 3解题方法:(1)上下颠倒:7 8 94 5 61 2 3(2)反斜杠对角线折叠7 4 18 5 29 6 3代码: 1 #include<s...

2017-12-06 17:59:00 521

转载 判断有N个数的数组有无重复的数

(1)数是整数排好序,查重。nlogn,参考(2)利用哈希表,时间复杂度n找出最大值和最小值,如果数组长度大于二者差,必然有重复。如果数组长度小于二者差:最大值不是太大的情况下,可使用bitmap和位运算,实现哈希表,然后扫描数组,填写哈希表的每一个bit。最大值很大的情况下,利用哈希函数压缩索引,哈希表原理查重。(2)数是浮点数冒泡排序,排序完毕,扫描统...

2017-12-06 16:51:00 408

转载 查找最小的偶数

一个数组,里面有偶数也有奇数,查找最小的偶数。 1 int MinOuShu(int *a,int len) { 2 int min; 3 int flag = 0; 4 for(int i = 0;i < len;++i) { 5 if(flag == 0) { 6 if(a[i] % 2...

2017-12-01 18:35:00 329

转载 在一个字符串中找到第一个只出现一次的字符

草草草!!!在数组的符合某种条件的所有元素中找到的最小的元素。利用选择排序的原理保存最小元素的索引的方法查找最小值,记得!第一个索引设置成符合要求的元素的索引,不要随便设置成数组的第一个元素的索引。24 -- 38行代码。在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。(1)不使用额外空间,时间复杂度是O(n^2)像冒泡排序那样,内...

2017-12-01 17:25:00 127

转载 查找最小的k个数

一个整型数组,有n个元素,可以含有重复元素。 查找该数组中最小的k个数。(1)对数组快速排序,然后从前往后依次挑出最小的k个元素,时间复杂度:nlogn + k = nlogn(2)设置一个容量是 k 的临时数组,扫描目的数组,如果临时数组元素个数小于k,直接填入临时数组,如果临时数组元素个数大于k,找出临时数组的最大的元素,如果扫描的元素大于或等于最大元素直接过滤掉,如果小于,...

2017-12-01 16:47:00 92

转载 动规:最大上升子序列

整型数组,求连续子序列和的最大值。 如 -1 , 3, -4,7 结果是7 ***** -1 ,4,-2,7 结果是 8。分析: 利用动态规划,设f(i) 是以第 i 位结尾的所有序列中和最大的序列的值。有: f(i) = a[i] 当a[i] <= 0 f(i) = a[i] + f(i-1) 当a[i] > 0 1 ...

2017-12-01 16:07:00 52

转载 平衡二叉树

我们知道,对于一般的二叉搜索树(Binary Search Tree),其期望高度(即为一棵平衡树时)为log2n,其各操作的时间复杂度(O(log2n))同时也由此而决定。但是,在某些极端的情况下(如在插入的序列是有序的时),二叉搜索树将退化成近似链或链,此时,其操作的时间复杂度将退化成线性的,即O(n)。我们可以通过随机化建立二叉搜索树来尽量的避免这种情况,但是在进行了多次的操作之后...

2017-12-01 12:50:00 57

转载 最大堆

1 一个数组,始终保持最大/最小的元素在a[0]单元,该数组可以追加元素,可以随时取走a[0]这个最大/最小元素. 2 解决思路:保证数组a[0]始终存放最大/最小元素,且数组整体分布特征满足一定条件,使得在数组元素发生变化时,在最少的时间内使得a[0]仍是最大/最小元素. 3 牵扯3个问题: 4 (1) 给一个随机分布的无序数组,怎样把数组元素的位置调整成a[0...

2017-12-01 12:34:00 94

转载 二叉查找树

1 复习时,手画一棵查找树,亲自摸清查找树的各操作 2 二叉查找树的定义 3 一颗空树或该非空树满足: 4 1,若有左子树,左子树的所有节点小于根节点 5 2,若有右子树,右子树的所有节点大于根节点*/ 6 /*二叉查找树的一些性质 7 1.查找某个关键字的比较次数最多是树的深度, 8 模拟过程是从树根往下沿着 9 某一路径走到...

2017-12-01 12:33:00 60

转载 抽象类和接口和Lambda

内部类匿名内部类也就是没有名字的内部类,匿名内部类就是重写父类或接口的方法。正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写但使用匿名内部类还有个前提条件:必须继承一个抽象类或实体类或接口实例1:不使用匿名内部类来实现抽象方法123456789101112131415...

2017-11-27 20:08:00 190

转载 思考对于各种容器对相等的理解

只要equals返回true只要compare返回0既equals又hashCode转载于:https://www.cnblogs.com/joyeehe/p/7896623.html

2017-11-25 22:01:00 42

转载 Iterator

1 /* 2 Iterator接口屏蔽了容器的底层,能够统一的遍历任何容器。 3 使用Iteartor遍历容器的步骤: 4 (1)迭代游标 Iterator it 5 (2)容器c c.iterator() 把容器元素逻辑上排成“人行树”,并返回第一个游标 6 (3)Iterator it = c.iterator(); 7 遍历和容器无关了,所有操作由迭...

2017-11-24 20:36:00 54

转载 计算机常用英文词汇

retain英:[rɪ'teɪn] 保留,保持iterator['ɪtəreɪt] 迭代器implements/'ɪmplɪmɛnt/贯彻 使生效peek偷看;一瞥synchronized sɪŋkrənaɪzd同步的infinity[ɪnˈfɪnəti] 无穷大转载于:https://www.cnblogs.com/joyeehe/p...

2017-11-24 18:44:00 72

转载 不可变类

不可变类:不可变类创建的实体,创建后,实体成员变量不再变化。如Java提供的8个包装类和String。转载于:https://www.cnblogs.com/joyeehe/p/7890528.html

2017-11-24 14:35:00 35

转载 单例类

某个类,仅当系统不存在自身类的实体才创建实体。 即,系统中要么无实体,要么仅有一个实体。 1 class Singleton 2 { 3 //使用一个变量来缓存曾经创建的实例 4 private static Singleton instance; 5 //将构造器使用private修饰,隐藏该构造器 6 private...

2017-11-23 20:58:00 43

转载 二叉树的三种遍历

前言:搞懂非递归和递归三种遍历,二叉树的90%的问题算你全搞定了。先序遍历:根,左子树,右子树中序遍历:左子树,根,右子树后序遍历:左子树,右子树,根先序遍历序列的特点:ABCDEFGHIJK A是树根,左子树可能是BCDEFGH右子树可能是IJK 对于B左子树可能是CD,右子树可能是EFGH。即,任一结点,它的右侧的一段元素依次是左子树,右子树。中序遍历序列的特...

2017-11-22 13:22:00 68

转载 先序创建二叉树

09 void CreateTree(BiTree *T) { 10 char ch; 11 scanf("%c",&ch); 12 if(ch == '#') { 13 *T = NULL; 14 return; 15 } 16 else { 17 *T...

2017-11-22 12:45:00 251

转载 递归之斐波那契

斐波那契数列 f(0) = 0; f(1) = 1.......f(n) = f(n-1) + f(n - 2) 1 unsigned Fibo(int n) { 2 if (n == 0) 3 return 0; 4 if (n == 1) 5 return 1; 6 return Fibo(n - ...

2017-11-21 17:36:00 97

转载 java IO流

1 /*输出流必须执行flush(),不然写不进去*/ 2 import java.io.*; 3 public class TestIO { 4 public static void main(String[] args) throws Exception { 5 /*单个字符的读取: int read();一个字符被拆成2个8字节,每个8...

2017-11-21 15:27:00 64

转载 Java I/O流

确定流的一般过程:(1)是读还是写。读: Reader InputStream 写:Writer OutputStream(2)是否纯文本。 是:Reader Writer 否:InputStream OutputStream(3)确定流源: 硬盘:File 内存:ByteArray CharArray 网络:s.get...

2017-11-21 05:31:00 69

转载 堆排序

要想明白堆排序,首先要明白堆和数组是等价的本质,还要熟悉完全二叉树的性质。有关完全二叉树的性质 http://www.cnblogs.com/joyeehe/p/7865578.html最大堆排序源码:注意:假设待排序数组是a[101],此程序,对索引1到101的单元排序,不处理a[0],因为我使用的是从1开始编号的完全二叉树。给函数传参时,传的是实际处理的元素个数问...

2017-11-20 22:12:00 59

转载 快速排序

想明白快速排序,首先得解决这个问题:一个无序数组,怎样调整数组各个单元的值,使得数组满足:a[0] 在数组中的某个位置,该位置的左边所有元素都不大于a[0],该位置右边的所有元素都不小于a[0] . 1 int Partition(int *a, int low, int high) { 2 if (a == null || low < 0 || high ...

2017-11-20 20:07:00 85

转载 完全二叉树

n是偶数n是奇数i是叶子结点(i)无孩子i>n/2i>n/2i有两个孩子i<n/2i<=n/2i有1个孩子(且是左孩子)i=n/2无i有左孩子i<=...

2017-11-20 11:42:00 493

转载 String2

http://www.cnblogs.com/skywang12345/p/string02.htmlhttp://www.cnblogs.com/skywang12345/p/string03.htmlString 和 CharSequence 关系String 继承于CharSequence,也就是说String也是CharSequence类型。CharSequence是一个...

2017-11-20 00:53:00 55

转载 String

初稿:2017-11-19 23:57:11String的构造方法 1 import java.nio.charset.Charset; 2 import java.io.UnsupportedEncodingException; 3 4 public class StringContructorTest { 5 6 public stat...

2017-11-19 23:44:00 83

转载 进程概念

初稿:2017-11-19 21:58:21进程和程序的区别进程是动态的,程序是静态的,进程是暂存的,程序是永存的;程序和进程的关系就像剧本和场幕。进程的状态①创建 ②静止就绪 ③就绪 ④执行 ⑤阻塞 ⑥终止【⑦挂起】任何状态都可转换成挂起状态。创建:1,申请空白PCB 2,填写PCB 3,申请资源 。申请到除内存外的所有资源进入静止就绪状态,申请到包括内存在内...

2017-11-19 21:55:00 64

转载 并发

初稿:2017-11-19 21:28:20并发概念进程交替占用CPU执行片刻。为什么要引入并发?(1)按时间片并发执行,即分时操作系统,满足多用户多任务。(2)进程I/O或等待消息时,不使用CPU,让出CPU给其他进程使用,提高CPU的利用率。如何并发?每个进程都有PCB(进程控制块),由PCB控制进程的状态和并发。并发带来的...

2017-11-19 21:28:00 65

转载 选择排序

最坏时间复杂度,最佳时间复杂度,平均时间复杂度都是O(n^2)相比冒泡排序的优势是 每次扫描只保存索引,并不交换,节省了时间。但是冒泡排序可以设置标志位提前结束排序,较于选择排序也节省了时间。一次性放到终态位置:是稳定性:稳定;前提是 if ( a[ j ] >= a[ k ] ) k = j; 而不是if ( a[ j ] >=a[ k ] ) k ...

2017-11-19 20:30:00 60

转载 冒泡排序

初稿:2017-11-19 19:53:08最坏时间复杂度:O(n^2)每一趟都发生交换,持续了array.len-1趟,每一趟的每个单元都发生交换。最佳时间复杂度:O(n) 原数组是有序数组或基本有序,只扫描一趟。平均时间复杂度是O(n^2)稳定性:稳定一次性放到终态位置: 是适用:大致有序的少量数据核心知识点:两层循环for(i =...

2017-11-19 19:55:00 54

转载

初稿:2017-11-19 19:27:06利用数组模拟的栈: 初始化 top = -1; 入栈 stack[++top] = elem ; 出栈 --top; 栈满 top == STACK_SIZE - 1; 栈空 top == -1利用单链表模拟的栈: 参数只需要头结点即可,每个入栈...

2017-11-19 19:28:00 55

转载 循环队列

初稿:2017-11-19 14:12:20循环队列:本质是数组,采用循环方式,可以避免随着进队入队造成的空间浪费。知识点:N个连续的存储单元,第一个单元编号是0,最后一个单元是N-1;i代表任意一个单元的编号,++i % N能实现i的值从0走到N-1再自动回到0,依次循环往复。队空:rear == front; rear单元是空的,front是存在元素的队满:r...

2017-11-19 14:08:00 96

转载 链表补充及链表和数组的区别

初稿:2017-11-19 13:05:574种链表不循环单链表:加头结点,使得插入删除操作相同,不必特别处理插入或删除的是第一个位置的情况。循环单链表:引用参数是最后一个结点的指针pTail,这样既能迅速找到首结点pHead = pTail->next,也能迅速获取表尾。不循环双向链表:p所指结点后插入结点q. q->next = p->next...

2017-11-19 13:06:00 98

转载 单链表(不带头结点)

初稿:2017-11-18 23:50:40单链表的结点:数据域,指针域(存储下一结点的地址)包含函数:初始化,销毁,清空,尾插法和头插法批量录入数据,统计结点的个数,追加结点,删除结点,正序和逆序打印链表。知识点:(1)一个结构体内部不能含有结构体本身类型的结点,但可以含有本类型的指针。(2)易错点:删除,插入的操作可能会影响首结点的地址,要单独处理,不注意代码运...

2017-11-18 23:49:00 144

转载 动态数组

前言:1.动态数组:malloc分配的连续存储单元,容量不足时可扩容。2.含有函数:初始化,销毁,判空,判满,扩容,批量录入数据,查找,表尾追加,插入,删除,打印。3.重点理解:如何通过移动元素在数组中实现删除或插入。初稿:2017-11-18 21:31:05 1 #include"头文件.h" 2 #define INIT_SIZE 100 3...

2017-11-18 21:25:00 78

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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