返回列表
【48812】C程序设计的常用算法
发布时间:2024-08-14 来源:小九直播高清在线观看

  算法(Algorithm):计算机解题的根本思维办法和进程。算法的描绘:是对要处理一个问题或要完结一项使命所采纳的办法和进程的描绘,包含要阐明数据(输入什么数据、输出什么成果)、选用什么结构、运用什么句子以及怎么组织这些句子等。一般运用自然语言、结构化流程图、伪代码等来描绘算法。

  此类问题都要运用循环,要留意依据问题确认循环变量的初值、终值或完毕条件,更要留意用来表明计数、和、阶乘的变量的初值。

  例:用随机函数发生100个[0,99]规模内的随机整数,计算个位上的数字别离为1,2,3,4,5,6,7,8,9,0的数的个数并打印出来。

  本题运用数组来处理,用数组a[100]寄存发生确实100个随机整数,数组x[10]来寄存个位上的数字别离为1,2,3,4,5,6,7,8,9,0的数的个数。即个位是1的个数寄存在x[1]中,个位是2的个数寄存在x[2]中,个位是0的个数寄存在x[10]。

  只能被1或本身整除的数称为素数 根本思维:把m作为被除数,将2INT( )作为除数,假如都除不尽,m便是素数,不然就不是。(可用以下程序段完成)

  根本思维:n为不小于6的任一偶数,可分解为n1和n2两个数,别离查看n1和n2是否为素数,如都是,则为一组解。如n1不是素数,就不用再查看n2是否素数。先从n1=3开端,查验n1和n2(n2=N-n1)是否素数。然后使n1+2 再查验n1、n2是否素数, 直到n1=n/2中止。

  1)对有n个数的序列(寄存在数组a(n)中),从中选出最小的数,与第1个数交流方位;

  1)有n个数(寄存在数组a(n)中),榜首趟将每相邻两个数比较,小的调到前头,经n-1次两两相邻比较后,最大的数已“沉底”,放在最终一个方位,小数上升“浮起”;

  2)第二趟对余下的n-1个数(最大的数已“沉底”)按上法比较,经n-2次两两相邻比较后得次大的数;

  3)顺次类推,n个数共进行n-1趟比较,在第j趟中要进行n-j次两两比较。

  2)取小的元素地点数组的下一个元素与另一数组中上次比较后较大的元素比较,重复上述比较进程,直到某个数组被先排完;

  根本思维:一列数放在数组a[1]---a[n]中,待查找的数放在x 中,把x与a数组中的元素自始至终逐个进行比较查找。用变量p表明a数组元素下标,p初值为1,使x与a[p]比较,假如x不等于a[p],则使p=p+1,不断重复这样的一个进程;一旦x等于a[p]则退出循环;别的,假如p大于数组长度,循环也应该中止。(这样的一个进程可由下句子完成)

  考虑:将上面程序改写一查找函数Find,若找到则回来下标值,找不到回来-1

  ②根本思维:一列数放在数组a[1]---a[n]中,待查找的关键值为key,把key与a数组中的元素自始至终逐个进行比较查找,若相同,查找成功,若找不到,则查找失利。(查找子进程如下。index:寄存找到元素的下标。)

  根本思维:设n个有序数(从小到大)寄存在数组a[1]----a[n]中,要查找的数为x。用变量bot、top、mid 别离表明查找数据规模的底部(数组下界)、顶部(数组的上界)和中心,mid=(top+bot)/2,减半查找的算法如下:

  (4)在确认了新的查找规模后,重复进行以上比较,直到找到或许bot=top。

  根本思维:n个有序数(从小到大)寄存在数组a(1)a(n)中,要刺进的数x。首要确认x插在数组中的方位P;(可由以下句子完成)

  根本思路同一维数组,可用下面程序段完成(以二维数组a[3][4]为例):

  算法思维:关于一个问题的求解x,可由给定的一个初值x0,依据某一迭代公式得到一个新的值x1,这个新值x1比初值x0更挨近要求的值x;再以新值作为初值,即:x1x0,从头按本来的办法求x1,重复这一过和直到x1-x0(某一给定的精度)。此刻可将x1作为问题的解。

  办法:将m不断除 r 取余数,直到商为零,以反序得到成果。下面写出一转化函数,参数idec为十进制数,ibase为要转化成数的基(如二进制的基是2,八进制的基是8等),函数输出成果是字符串。

  加密的思维是: 将每个字母C加(或减)一序数K,即用它后的第K个字母替代,改换式公式: c=c+k

  (1)从文本(字符串)的左面开端,取出一个字符;设逻辑量word表明所取字符是否是单词内的字符,初值设为0

  (2)若所取字符不是“空格”,“逗号”,“分号”或“感叹号”等单词的分隔符,再判别word是否为1,若word不为1则表是新单词的开端,让单词数num = num +1,让word =1;

  (3)若所取字符是“空格”,“逗号”,“分号”或“感叹号”等单词的分隔符, 则表明字符不是单词内字符,让word=0;

  穷举法(又称“枚举法”)的根本思维是:逐个列举各种或许的状况,并判别哪一种或许是契合规范要求的解,这是一种“在没有其它办法的状况的办法”,是一种最“笨”的办法,然而对一些无法用解析法求解的问题往往能见效,一般会用循环来处理穷举问题。

  例: 将一张面值为100元的人民币等值换成100张5元、1元和0.5元的零钞,要求每种零钞不少于1张,问有哪几种组合?

  VB答应在一个Sub子进程和Function进程的界说内部调用自己,即递归Sub子进程和递归Function函数。递归处理一般用栈来完成,每调用一次本身,把当时参数压栈,直到递归完毕条件;然后从栈中弹出当时参数,直到栈空。

  递归条件:(1)递归完毕条件及完毕时的值;(2)能用递归方式表明,且递归向停止条件开展。