當前位置:首頁 » 編程語言 » c語言實用演算法
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言實用演算法

發布時間: 2022-04-02 16:56:22

Ⅰ 常用的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