当前位置:首页 » 操作系统 » c算法iiv

c算法iiv

发布时间: 2022-09-07 11:18:43

1. 高分求一个c语言算法设计方法

#include <stdio.h>
int main(void)
{
unsigned long long A,B,C;
int cnt=0;
scanf("%ld%ld",&A,&B);
C=A^B;//异或运算,不同位置一
do{
cnt+=(int)(C&1); //末位为1计数
C>>=C;//右移一位
}while(C); //全零结束
printf("number of diff bit:%d\n",cnt );
}

2. 二叉树C语言算法,急!!!!

清华大学
严蔚敏
的<数据结构里>都有完整的代码,解释的也很清楚
#include<iostream>
#include<stdlib.h>
#include<stdio.h>
typedef
struct
tree
{
struct
tree
*left;
int
date;
struct
tree
*right;
}treenode,*b_tree;
///////插入节点/////////////////////
b_tree
insert(b_tree
root,int
node)
{
b_tree
newnode;
b_tree
currentnode;
b_tree
parentnode;
newnode=(b_tree)malloc(sizeof(treenode));
newnode->date=node;
newnode->right=NULL;
newnode->left=NULL;
if(root==NULL)
return
newnode;
else
{
currentnode=root;
while(currentnode!=NULL)
{
parentnode=currentnode;
if(currentnode->date>node)
currentnode=currentnode->left;
else
currentnode=currentnode->right;
}
if(parentnode->date>node)
parentnode->left=newnode;
else
parentnode->right=newnode;
}
return
root;
}
//////建立树///////////////////
b_tree
creat(int
*date,int
len)
{
b_tree
root=NULL;
int
i;
for(i=0;i<len;i++)
root=insert(root,date[i]);
return
root;
}
//////中序打印////////////////
void
print1(b_tree
root)
{if(root!=NULL)
{
print1(root->left);
printf("%d->",root->date);
print1(root->right);
}
}
//////后序打印////////////////
void
print2(b_tree
root)
{if(root!=NULL)
{
print2(root->left);
print2(root->right);
printf("%d->",root->date);
}
}
//////前序打印////////////////
void
print3(b_tree
root)
{if(root!=NULL)
{
printf("%d->",root->date);
print3(root->left);
print3(root->right);
}
}
//////////在二叉树中查找给定关键字
////////////
b_tree
lookfor(b_tree
root,int
e)
{
b_tree
p1,p2;
if(root!=NULL)
{
if(root->date==e)
return
root;
else
p1=lookfor(root->left,e);
p2=lookfor(root->right,e);
if(p1!=NULL)
return
p1;
else
if(p2!=NULL)
return
p2;
else
return
NULL;
}
else
return
NULL;
}
///////测试函数//////////////////
void
main()
{
b_tree
root=NULL;
int
i,index;
int
value;
int
nodelist[20];
cout<<"输入树的节点,输入0结束\n";
index=0;
cin>>value;
while(value!=0)
{
nodelist[index]=value;
index=index+1;
cin>>value;
}
root=creat(nodelist,index);
printf("\n中序打印\n");
print1(root);
printf("\n后序打印\n");
print2(root);
printf("\n前序打印\n");
print3(root);
printf("\n查找的词:\n");
int
a;
scanf("%d",&a);
b_tree
p3=lookfor(root,a);
if(p3!=NULL)
printf("%d\n",p3->date);
else
printf("没你要找的词");
}

3. 【C语言算法】求最优解

#include<stdio.h>

voidmain()
{
doubleV;
printf_s("请输入V: ");
scanf_s("%lf",&V);
intm,n,p;
intM,N,P;
doubledelta=10000.0;
for(m=0;m<=16;m++)
{
for(n=0;n<=256;n++)
{
for(p=1;p<=4096;p++)
{
doubled=m*n/(double)p-V;
if(d<0)
d=-d;
if(d<delta)
{
delta=d;
M=m;
N=n;
P=p;
}
}
}
}
printf_s("最优解:M=%d,N=%d,P=%d ",M,N,P);
}

4. 来个c语言算法大神帮帮忙!

#include<stdio.h>

#include<string.h>

void makeLDR(char DLR[],char LDR[],char LRD[],int n1)

{ int n2;

char *p=strchr(LDR,DLR[0]);

n2=p-LDR; //左子树节点数

LRD[n1-1]=DLR[0]; //赋后序根节点

if(n2>0)makeLDR(DLR+1,LDR,LRD,n2); //递归建立左子树的后序

if(n1-n2>1)makeLDR(DLR+1+n2,LDR+n2+1,LRD+n2,n1-n2-1); //递归建立右子树的后序

}

int main()

{ int i,n;

char DLR[50],LDR[50],LRD[50],c;

for(i=0,c=' '; c!=' ';) //读入左子树序列

scanf("%c%c",&DLR[i++],&c);

for(i=0,c=' '; c!=' ';) //读入右子树序列

scanf("%c%c",&LDR[i++],&c);

DLR[n=i]=LDR[i]=LRD[i]='';

makeLDR(DLR,LDR,LRD,n);

printf("后序序列: ");

for(i=0;i<n;i++)

printf("%c%c",LRD[i],i==n-1?' ':',');

return 0;

}

5. C语言算法的时间复杂度如何计算啊

看看这个
每个循环都和上一层循环的参数有关。
所以要用地推公式:
设i(n)表示第一层循环的i为n时的循环次数,注意到他的下一层循环次数刚好就是n,分别是0,1,2...n-1
所以,把每一层循环设一个函数分别为:j(n),k(n),t(n)
则有
i(n)=j(0)+...+j(n-1)
j(n)=k(0)+...+k(n-1)
k(n)=t(0)+...+t(n-1)
i(0)=j(0)=k(0)=0
t(n)=1
而总循环数是i(0)+i(1)...+i(n-1)
可以根据递推条件得出准确值
所以算法复杂度是O(i(0)+i(1)...+i(n-1))
记得采纳啊

6. C语言简单算法介绍

第一步:p=1,第二步:i=2,第三步:应该是p*i赋值给p,所以p*i=1*2 赋值给p
也就是现在的p=1*2,第四步:把i+1赋值给i,此时i=3,第五步:判断i是否大于五,没有返回到第三步:把p*i赋值给p,所以p*i=1*2*3 赋值给p
也就是现在的p=1*2*3,第四步:把i+1赋值给i,此时i=4,第五步:判断i是否大于五,没有返回到第三步:把p*i赋值给p,所以p*i=1*2*3*4 赋值给p
也就是现在的p=1*2*3*4,第四步:把i+1赋值给i,此时i=5,第五步:判断i是否大于五,没有返回到第三步:把p*i赋值给p,所以p*i=1*2*3*4*5 赋值给p
也就是现在的p=1*2*3*4*5,第四步:把i+1赋值给i,此时i=6,第五步:判断i是否大于五,有,结束。此时p=1*2*3*4*5=5!
这样i+1就是为了使得后面的乘3,乘4,乘5做准备的!

7. c语言算法中的五个特性是什么

C语言中的算法是指为解决某个特定问题而采取的确定且有限的步,主要的五个特性是:有穷性、确定性、可行性、有0个或多个输入、有一个或多个输出。

8. c语言常用算法有哪些

0) 穷举法
穷举法简单粗暴,没有什么问题是搞不定的,只要你肯花时间。同时对于小数据量,穷举法就是最优秀的算法。就像太祖长拳,简单,人人都能会,能解决问题,但是与真正的高手过招,就颓了。
1) 贪婪算法
贪婪算法可以获取到问题的局部最优解,不一定能获取到全局最优解,同时获取最优解的好坏要看贪婪策略的选择。特点就是简单,能获取到局部最优解。就像打狗棍法,同一套棍法,洪七公和鲁有脚的水平就差太多了,因此同样是贪婪算法,不同的贪婪策略会导致得到差异非常大的结果。
2) 动态规划算法
当最优化问题具有重复子问题和最优子结构的时候,就是动态规划出场的时候了。动态规划算法的核心就是提供了一个memory来缓存重复子问题的结果,避免了递归的过程中的大量的重复计算。动态规划算法的难点在于怎么将问题转化为能够利用动态规划算法来解决。当重复子问题的数目比较小时,动态规划的效果也会很差。如果问题存在大量的重复子问题的话,那么动态规划对于效率的提高是非常恐怖的。就像斗转星移武功,对手强它也会比较强,对手若,他也会比较弱。
3)分治算法
分治算法的逻辑更简单了,就是一个词,分而治之。分治算法就是把一个大的问题分为若干个子问题,然后在子问题继续向下分,一直到base cases,通过base cases的解决,一步步向上,最终解决最初的大问题。分治算法是递归的典型应用。
4) 回溯算法
回溯算法是深度优先策略的典型应用,回溯算法就是沿着一条路向下走,如果此路不同了,则回溯到上一个
分岔路,在选一条路走,一直这样递归下去,直到遍历万所有的路径。八皇后问题是回溯算法的一个经典问题,还有一个经典的应用场景就是迷宫问题。
5) 分支限界算法
回溯算法是深度优先,那么分支限界法就是广度优先的一个经典的例子。回溯法一般来说是遍历整个解空间,获取问题的所有解,而分支限界法则是获取一个解(一般来说要获取最优解)。

9. c语言算法

离散数学离散数学作为计算机学科的基础是竞赛中涉及最多的数学分支,重中之重又在于图论和组合数学,尤其是图论。图论之所以运用最多是因为它的变化最多,而且可以轻易地结合基本数据结构和许多算法的基本思想,较多用到的知识包括连通性判断、DFS和BFS,关节点和关键路径、欧拉回路、最小生成树、最短路径、二部图匹配和网络流等等。虽然这部分的比重很大,但是往往也是竞赛中的难题所在,如果有初学者对于这部分的某些具体内容暂时感到力不从心,也不必着急,可以慢慢积累。组合数学竞赛中设计的组合计数问题大都需要用组合数学来解决,组合数学中的知识相比于图论要简单一些,很多知识对于小学上过奥校的同学来说已经十分熟悉,但是也有一些部分需要先对代数结构中的群论有初步了解才能进行学习。组合数学在竞赛中很少以难题的形式出现,但是如果积累不够,任何一道这方面的题目却都有可能成为难题。数论以素数判断和同余为模型构造出来的题目往往需要较多的数论知识来解决,这部分在竞赛中的比重并不大,但只要来上一道,也足以使知识不足的人冥思苦想上一阵时间。素数判断和同余最常见的是在以密码学为背景的题目中出现,在运用密码学常识确定大概的过程之后,核心算法往往要涉及数论的内容。计算几何计算几何相比于其它部分来说是比较独立的,就是说它和其它的知识点很少有过多的结合,较常用到的部分包括—线段相交的判断、多边形面积的计算、内点外点的判断、凸包等等。计算几何的题目难度不会很大,但也永远不会成为最弱的题。线性代数对线性代数的应用都是围绕矩阵展开的,一些表面上是模拟的题目往往可以借助于矩阵来找到更好的算法。 ~

10. c语言算法有哪些

这里整理c语言常用算法,主要有:
交换算法
查找最小值算法
冒泡排序
选择排序
插入排序
shell排序 (希尔排序)
归并排序
快速排序
二分查找算法
查找重复算法

热点内容
暴风影音缓存在哪里 发布:2025-05-12 12:42:03 浏览:534
access数据库exe 发布:2025-05-12 12:39:04 浏览:622
五开的配置是什么 发布:2025-05-12 12:36:37 浏览:358
加密ovpn 发布:2025-05-12 12:01:55 浏览:44
python练手项目 发布:2025-05-12 11:14:07 浏览:122
压缩听算音频 发布:2025-05-12 10:58:12 浏览:801
数据库系统报告 发布:2025-05-12 10:43:17 浏览:603
日产高配有哪些配置 发布:2025-05-12 10:32:16 浏览:475
大众朗逸哪个配置值得入手 发布:2025-05-12 10:31:20 浏览:505
压缩包的后缀 发布:2025-05-12 10:20:35 浏览:944