Ⅰ 常用的c语言算法有哪些
算法是一个自成体系的东西,和c语言没有本质联系。
而且算法是为了解决问题的,所以也就无所谓常用不常用。
如果你的程序需要排序功能,那么排序就算常用算法,排序算法有冒泡,快速和归并等。
Ⅱ 求C语言常用经典算法
既然是初学者,也没必要总结什么常用算法,只要把已经学到过的算法总结一下编出相应的程序就可以了,还没学到的总结了也未必知道什么意思。
Ⅲ 用C语言实现数据结构中常用算法,如对链表的操作、查找、排序等。
调试过的
没什么大的毛病
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
typedef int ElemType;
typedef struct LNode {
ElemType date;
struct LNode *next;
}linklist,*link;
/*构造链表*//////////////////////////////////////
void IinitList(link &L)
{
if(L)delete L;
L= (link)malloc(sizeof(LNode)) ;
if (!L) exit(1);
L->next=NULL;
cout<<"链表已经建立\n";
}
//////////////////////////////////////////////////////
// /*删除结点*/// //////////////////////////////////////////////
int listdelete(link &L,int i,ElemType &e)
{
link p,q; int j;
p=L;j=0;
while(p->next&&j<i-1)
{
p=p->next;++j;
}
q=p->next;
p->next=q->next;
e=q->date;free(q);
cout<<"链表已经删除\n";
return 1;
}
////////////////////////////////////////////// /////////
// /*插入结点*/////////////// ///////////////////////
int listinsert(link &L,int i,ElemType e)
{
link p,q;
int j;
p=L;j=0;
while(p&&j<i-1)
{
p=p->next;++j;
}
q= (link)malloc(sizeof(LNode));
q->date=e;
q->next=p->next;
p->next=q; cout<<"链表已经插入\n";
return 1;
}
/////////////////////////////////////////////////////
////*显示数据*///////// ////////////////////////////////
void show(link l)
{ link p; int j;
p=l;j=0;
cout<<"链表的值为:\n";
while(p->next)
{
cout<<p->next->date<<endl;
p=p->next;
}
}
//////////////////////// /////////////////////////////////
//////销毁链表////// ////////////////////////////////////////
void destorylinst(link &L)
{
while(L)
{ link p=L;
L=L->next;
free(p) ;
}
L=NULL;
}
////// 打印表头///////////////////////////////////////
void print()
{
cout<<"------------------------\n";
cout<<"------------------------\n";
}
////////////////////////////////////////////////////////
///////////////////////////////////////////////////////
////查找结点//// ////////////////////////////////////////
void lookfor(link l,int e)
{
if(l==NULL)
cout<<"链表未建立,请先构造链表\n" ;
else{
link p; int i=0,j=0;
p=l->next;
cout<<"你查找值的位置是:\n " ;
while(p)
{ if(p->date==e)
{ j++;
cout<<i+1<<endl;
}
p=p->next; i++;
}cout<<"查找完毕\n";
if(j==0)
cout<<"你查找的值不在链表中 、\n";
} }
void putline(link &l)
{
if(l==NULL ||l->next==NULL )
cout<<"链表未建立或是空的,请先构造链表\n" ;
else{
link p,q;
p=l->next;
while(p!=NULL)
{
q=p->next;
while(q!=NULL)
{
if(p->date>q->date)
{ ElemType t;
t=p->date;
p->date=q->date;
q->date=t;
}
q=q->next;
}
p=p->next;
} cout<<"链表已经排序 \n";
}
}
/////////////////////////////// //////////////////
///////////////////////////////////////////////////
//////测试函数///// /////////////////////
void main()
{ link L=NULL; int k;
while(1)
{
cout<<"按0退出\n"<<"按1建立\n"<<"按2插入\n"<<"按3删除\n"
<<"按4清空链表\n"<<"按5查找\n"<<"按6进行排续\n" ;
print();
int a,i,j;
cin>>a;
switch(a)
{ case 0: if(L!=NULL)
destorylinst(L) ;
exit(1);
case 1:
IinitList(L);
k=0;
print();
show(L) ;
cout<<"空的链表\n";
cout<<"链表长度为: "<<k<<endl;
print();
cout<<"是否要给链表插入值:y----n\n";
char yy;
yy=getchar();
if(yy=='y')
{
cout<<"请输入值!按回车键后输入下一个,输入0再按回车结束\n";
int bb;
cin>>bb;
while(bb!=0)
{ k++;
listinsert(L,k,bb) ;
cin>>bb;
}
print();
show(L) ; cout<<"链表长度为: "<<k<<endl;
}
else break;
print();
break;
case 2:
if(L!=NULL)
{
cout<<"输入位置:\n";
cin>>i;
while(i>k+1 || i<1)
{
cout<<"位置错误,重新输入插入位置\n" ;
cin>>i;
}
cout<<"输入植;\n";
cin>>j;
listinsert(L,i,j) ;
k++;
print();
show(L);
cout<<"链表长度为:"<<k<<endl;
print();
}
else
{ cout<<"链表不存在,请先建链表\n";
print(); }
break;
case 3:
if(L!=NULL)
{
cout<<"输入位置:\n";
cin>>i;
while(i>k || i<1)
{
cout<<"位置错误,重新输入删除位置\n" ;
cin>>i;
}
listdelete (L,i,j);
cout<<"你删除的是:\n";
cout<<j<<endl ;
k--; print();
show(L);
cout<<"链表长度为:"<<k<<endl;
print();
}
else {
cout<<"链表不存在,请先建链表\n";
print();
}
break;
case 4:
destorylinst(L) ;
cout<<"链表已经清空\n";
print();
break;
case 5:
print();
cout<<"输入要查找的值;\n";
int z;
cin>>z;
lookfor(L,z);
print();
break;
case 6:
putline(L);
if(L!=NULL)
show(L);
print();
break;
default:
break ;
}
}
delete L;
}
Ⅳ C语言,在程序设计时常用什么来直观的表示算法
1.算法可以理解为有基本运算及规定的运算顺序所构成的完整的解题步骤。或者看成按照要求设计好的有限的确切的计算序列,并且这样的步骤和序列可以解决一类问题
2.流程图,计算机语言,伪代码 来表示算法
3.顺序结构 选择结构 循环结构
4.逻辑思维
5.结构化算法是由一些基本结构顺序组成的,就是把一个大的功能的实现分隔为许多个小功能的实现。
6.数据 算法
7.可行性 有穷性 输入 输出 确定性
8.数值运算 非数值运算
Ⅳ C语言有哪些常用算法稍微介绍一些常用的 我知道的有 二分法,冒泡排序,选择排序,插入排序这
二分法,冒泡 这些只是基础知识
算法没有说常用不常用,算法是完成程序功能的设计思路,面对不同的功能,不同的需求,不同的程序员会有不同的算法,这个是不可言传只可意会的东西。
多写多总结,多看看成熟的程序是怎么写的,慢慢就能提升自身的能力了。
Ⅵ c语言程序设计,各位大神帮帮:用c语言编程实现常用的三种算法(数据长度为10)
?没看懂你要说什么
Ⅶ 有什么经典的c语言算法书推荐一下吗
算法导论
数据结构 严蔚敏
数据结构与算法分析——c语言描述
算法珠玑
c编程专家
这几个都可以考虑.
Ⅷ 推荐几本关于C语言的学习的书
覃浩强咯 C语言程序设计
Ⅸ 工程常用算法作业 插值方法 C语言
2424