牛客网 基础知识积累
原码,反码,补码,递归,迭代,分治,堆,栈
原码
在数值前直接加一符号位的表示法。
反码
正数:正数的反码与原码相同。
负数:负数的反码,符号位为“1”,数值部分按位取反。
补码
递归
程序调用自身的编程技巧称为递归( recursion)。
使用递归要注意的有两点:
1)递归就是在过程或函数里面调用自身;
2)在使用递归时,必须有一个明确的递归结束条件,称为递归出口。
迭代
迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值。
利用变量的原值推算出变量的一个新值,迭代就是A不停的调用B。
分治
分治,字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。
堆(stack)
堆由程序员分配释放, 若程序员不释放,程序结束时由OS回收,分配方式倒是类似于链表。
栈(heap)
栈由操作系统自动分配释放 ,用于存放函数的参数值、局部变量等,其操作方式类似于数据结构中的栈。