摘要: 选择排序 选择排序是一种直观的排序算法.它的原理是每一次从待排序中选出最小或最大的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完.选择排序是不稳定的排序方法(比如:[5,5,2],在第一次就将第一个5与3交换了,导致第一个5挪到第二个5后面)。实现:void SelectSort(ty 阅读全文
posted @ 2018-05-31 10:57 努力飞的小菜鸟 阅读(1521) 评论(0) 推荐(0) 编辑
摘要: 快速排序 思想: 对冒泡排序的一种改进 通过一趟排序将要排序的数据分割成独立其中一部分的所有数据都比另外一部分小的两部分,然后再按此方法对这两部分分别进行快速排序, 个过程可以recursion(递归)进行,以此达到整个数据成为有序序列. 是否稳定: 不稳定,多个相同的值得相对位置也许会在算法结束的 阅读全文
posted @ 2018-05-31 10:56 努力飞的小菜鸟 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 基数排序(桶排序)基本思想: 是将阵列分别有限数量的桶子里。每个桶子再个别排序。桶排序是鸽巢排序的一种归纳结果。当要被排序的数值是均匀分配的时候,桶排序使用线性时间(O(n));桶排序的缺点: 1)首先是空间复杂度比较高,需要额外开销大。排序有两个数组空间开销,一个存放待排序数组,一个就是所谓的桶, 阅读全文
posted @ 2018-05-31 10:55 努力飞的小菜鸟 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 堆排序 堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位制定索引的元素。堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是每个结点的值都不大于其父节点的值。在数组的非降序排序排序中,需要使用的就是大根堆,因为根据大根堆的要 阅读全文
posted @ 2018-05-31 10:54 努力飞的小菜鸟 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 归并排序 归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有有序的自序序列归并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并 阅读全文
posted @ 2018-05-31 10:54 努力飞的小菜鸟 阅读(130) 评论(0) 推荐(0) 编辑
摘要: shell(希尔排序) 希尔排序(Shell Sort)是插入排序的一种,也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL. Shell于1959年提出而得名。 希尔排序是记录按下标的一定增量分组,对每组使用直接排序算法排序;随着增量逐渐减少,每组包 阅读全文
posted @ 2018-05-31 10:53 努力飞的小菜鸟 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 1.管道(pipe)及有名管道(named pipe) 管道可用于具有亲缘关系进程间的通信,有名管道除了具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。 2.信号(signal) 信号是在软件层次上对中断机制的一种模拟,它是比较复杂的通信方式,用于通知进程有某事件发生。 3.消息队列(mes 阅读全文
posted @ 2018-05-31 10:51 努力飞的小菜鸟 阅读(171) 评论(0) 推荐(0) 编辑
摘要: assert()是一个调试程序时,经常使用的宏 作用:在程序运行时它计算括号内的表达式,如果表达式为FALSE(0), 程序将报告错误,并终止执行。如果表达式不为0,则继续执行 后面的语句,即终止程序以免导致严重后果,同时便于查找错误。 使用:(linux环境) 头文件:#include 报告错误的条件:assert(0) 原理:assert表达式为假,... 阅读全文
posted @ 2016-10-10 10:03 努力飞的小菜鸟 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 可重入函数1.定义: 简单来说既是可以被中断的函数。在这个函数你在的任何时刻中断它, 转入OS调度下去执行另外一段代码,而返回执行时不会出现任何问题;而不可 重入函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以如 果被中断的话,可能会出现问题,这类函数是不能运行在多任务环境下的。 满足 阅读全文
posted @ 2016-10-10 10:01 努力飞的小菜鸟 阅读(548) 评论(0) 推荐(0) 编辑
摘要: linux 中进程通信实现通信方式:管道 消息队列 共享内存 信号量 套接口1.管道 包括无名管道和有名管道,前者用于父子进程的通信,后者用于运行于同一台机器上的任意两个进程间的通信。 1)无名管道 创建:#include<unistd.h> int pipe(int pipefd[2]) 参数:p 阅读全文
posted @ 2016-10-10 09:57 努力飞的小菜鸟 阅读(930) 评论(0) 推荐(0) 编辑