摘要: 强化耦合 1.将隐式的关系变成显式的关系 例如:在界面的不同位置要显示不同的图形,位置和图形是一对一的关系,于是代码如下: for(int i = 0;i<count ;i++){ Draw(Shape[i], position[i]); } 分析: 因为连个数组元素之间的对应关系,并没有得到正式承 阅读全文
posted @ 2020-02-19 14:01 天凉好个秋秋 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 什么是耦合 我们总是听到说这有耦合,那要解耦。耦合看起来很高大上的名词,实际上耦合代表的就是各种元素之间的依赖性和相关性。 耦合的种类 数据之间的耦合;例如: class Person{ string name; int age; } name和age属于同一个类里面,他们就产生了耦合 函数之间的耦 阅读全文
posted @ 2020-02-19 12:19 天凉好个秋秋 阅读(584) 评论(0) 推荐(0) 编辑
摘要: 程序世界的两个基本元素 1.程序世界两个基本元素是代码和数据; 2.数据和代码相互伪装: 有的看起来是代码的,实际上是数据 。例如:bool flag = true; true属于代码,这里是数据 有的看起来像数据,却是代码 有的代码在特定时候,可以充当数据。 函数指针是一种特殊的数据,这种数据不会 阅读全文
posted @ 2020-02-18 16:15 天凉好个秋秋 阅读(870) 评论(0) 推荐(0) 编辑
摘要: (l+r)/2 l + (r-l)/2 阅读全文
posted @ 2020-02-17 22:57 天凉好个秋秋 阅读(689) 评论(0) 推荐(0) 编辑
摘要: 1.为什么要引入索引堆 普通堆在操作的时候有两个问题: 在堆中,构建堆、插入、删除操作都需要大量的交换操作,如果结点存储的是比较复杂的数据结构,那么消耗的比较多 例如有一组进程,如果某个进程id为7,想提高它的优先级,由于堆的性质,会不断调整,就难以去找到它了。 2.索引堆优化了什么 索引堆将引入索 阅读全文
posted @ 2020-02-17 21:44 天凉好个秋秋 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 1.XML 与JSON 在不同的语言之间交换数据 阅读全文
posted @ 2020-02-17 16:45 天凉好个秋秋 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 恢复内容开始 一、为什么要引入堆排序 在日常生活中,很多场景需要优先队列。 应用场景一:动态请求。比如队伍中不断的入队和出队,并且优先级是动态调整,此时用堆比较合适。 应用场景二:M个数字中求前N个大的数。 什么是优先队列? 普通队列是先进先出,后进后出;优先队列是出队顺序和入队顺序无关,与优先级有 阅读全文
posted @ 2020-02-17 16:43 天凉好个秋秋 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 一、分治算法 分而治之,即把原问题分割成同等结构的子问题,之后针对子问题逐一解决。 归并排序更关心的是治。 快速排序更关心的是分,如何均匀分的问题,它有一个pivot,如何合理的均分。 二、分治算法应用 求逆序数 1. 什么是逆序数? 排在前面的元素比后面大。例如:序列 3 5 6 8 1 ;8排在 阅读全文
posted @ 2020-02-15 21:28 天凉好个秋秋 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 一、O(nlogN)和 O(n^2)的时间效率对比 二、归并排序的实现过程 过程:分组,组内排序 法一:递归实现 //将arr[l...mid]和arr[mid+1...r]两部分进行归并template<typename T>void __merge(T arr[],int l,int mid,i 阅读全文
posted @ 2020-02-15 15:39 天凉好个秋秋 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 一、选择排序 //选择排序 O(n^2) void selectSort(int arr[],int n) { for(int i = 0;i < n; i++){ int minIndex = i; //寻找 [i,n]的最小值 for(int j = i + 1; j < n; j++){ if 阅读全文
posted @ 2020-02-14 14:57 天凉好个秋秋 阅读(238) 评论(0) 推荐(0) 编辑