编程语言
文章平均质量分 53
m0_37962600
这个作者很懒,什么都没留下…
展开
-
断言 assert() 的使用总结
assert()使用总结1.头文件 assert()定义在头文件 #include中.2.功能及其用法(1)使用 1.1 . assert()是程序调试的一个重要手段,使用方法为assert(expression). 它可以在debug和release两种模式下进行使用,并且在两种模式下的使用下产生的结果是不相同的.a.debug模式原创 2017-09-21 18:27:31 · 2818 阅读 · 1 评论 -
预编译处理-----C语言中的宏以其和函数的区别
宏是一种预处理指令,可以通过#define定义。 C语言中的宏可以分为有参数宏和无参数宏两类。1.无参数宏(也是我们最常用的一类宏)a.形式为:#define 标识符 宏体(eg:#define x 100 其功能是指定标识符 x 来代替100. 这种替换主要目的是为用户在编程时提供一定的方便,并能在一定程度上提高程序的运行效率。 )2.有参数宏原创 2017-10-08 10:37:04 · 415 阅读 · 0 评论 -
加密算法------DES加密算法详解
一、加密算法的分类1.对称加解密算法a.通信双方同时掌握一个密钥,加密解密都是由一个密钥完成的(即加密密钥等于解密密钥,加解密密钥可以相互推倒出来)。b.双方通信前共同拟定一个密钥,不对第三方公开。c.不具有个体原子性,一个密钥被共享,泄漏几率增大2.公私钥加解密算法a.通信双方掌握不同的密钥,不同方向的加解密由不同的密钥完成。二、对称加密算法的代表----DES加密算法原理:该算法是一个利用56...原创 2018-04-13 21:15:59 · 112033 阅读 · 38 评论 -
八种排序算法(三)---------冒泡排序、选择排序、插入排序、希尔排序、交换排序
一、冒泡排序具体过程:d代码实现:void bubble_sort(int* arr,int len){ if(arr == NULL || len < 0) return ; bool flag = true; for(int i=0;i<len-1 && flag;i++) { fl...原创 2018-08-09 19:54:28 · 806 阅读 · 1 评论 -
八种排序算法(四)----- 堆排序
堆排过程:先将待排序的数视为完全二叉树(按层次遍历顺序进行编号,从0开始)完全二叉树的最后一个非叶子节点,也就是最后一个节点的父结点。最后一个节点的索引为数组长度len-1,那么最后一个非叶子节点的索引应该是为(len-1)/2.也就是从索引为2的节点开始,如果其子节点的值大于其本身的值,则把他和较大子节点进行交换,即将索引2处节点和索引5处元素交换。交换后的结果如图:建堆...原创 2018-08-09 22:43:39 · 334 阅读 · 1 评论 -
超详细的八大排序算法的各项比较以及各自的特点
一、八大排序算法的总体比较二、算法各自的特点(具体实现见后面博客)1.快排(1)算法思想选择一个基准元素,将比基准元素小的元素放在其前面,比基准元素大的元素放在其后面,然后在将小于基准值元素的子数列和大于基准元素的子数列按原来的方法排序,直到整个序列有序;(2)优缺点优点:极快数据移动少;缺点:不稳定;(3)效率分析此排序算法的效率在序列越乱的时候,效率越高...原创 2018-08-09 23:01:56 · 76325 阅读 · 15 评论