本文目錄一覽:
- 1、C語言基本算法
- 2、c語言常用算法有哪些
- 3、C語言中的算法是指什麼
- 4、用c語言寫算法
- 5、c語言算法有哪些
C語言基本算法
1.輸入語句:scanf(“控制格式”,接受值列表),其中控制格式常用的有:%d,%c,%s,%f,分別
表示整型,字符型,字符串和浮點型.
例如int
a;char
c;scanf(“%d
%c”,a,c);表示向a和c輸入值
2.賦值語句:=號,如將b賦值為10,為b=10
3.條件:if(布爾表達式){程序}else{程序}(注:此結構可嵌套)
switch(離散量){case
常量:…;case
常量:…}
例:int
a;scanf(“%d”,a);
if(a10)
{printf(“大於10”);}
else
{printf(“小於10”)}
例:switch(months)
{
case
1:printf(“1月有31天”);break;
case
3:printf(“3月有31天”);break;
….
default:break;
}
4.循環:for結構,while結構,do-while結構
for(初始化;判斷;變化)
{
}
while(條件)
{
}
do
{
}while(條件)
c語言常用算法有哪些
0) 窮舉法
窮舉法簡單粗暴,沒有什麼問題是搞不定的,只要你肯花時間。同時對於小數據量,窮舉法就是最優秀的算法。就像太祖長拳,簡單,人人都能會,能解決問題,但是與真正的高手過招,就頹了。
1) 貪婪算法
貪婪算法可以獲取到問題的局部最優解,不一定能獲取到全局最優解,同時獲取最優解的好壞要看貪婪策略的選擇。特點就是簡單,能獲取到局部最優解。就像打狗棍法,同一套棍法,洪七公和魯有腳的水平就差太多了,因此同樣是貪婪算法,不同的貪婪策略會導致得到差異非常大的結果。
2) 動態規划算法
當最優化問題具有重複子問題和最優子結構的時候,就是動態規划出場的時候了。動態規划算法的核心就是提供了一個memory來緩存重複子問題的結果,避免了遞歸的過程中的大量的重複計算。動態規划算法的難點在於怎麼將問題轉化為能夠利用動態規划算法來解決。當重複子問題的數目比較小時,動態規劃的效果也會很差。如果問題存在大量的重複子問題的話,那麼動態規劃對於效率的提高是非常恐怖的。就像斗轉星移武功,對手強它也會比較強,對手若,他也會比較弱。
3)分治算法
分治算法的邏輯更簡單了,就是一個詞,分而治之。分治算法就是把一個大的問題分為若干個子問題,然後在子問題繼續向下分,一直到base cases,通過base cases的解決,一步步向上,最終解決最初的大問題。分治算法是遞歸的典型應用。
4) 回溯算法
回溯算法是深度優先策略的典型應用,回溯算法就是沿着一條路向下走,如果此路不同了,則回溯到上一個
分岔路,在選一條路走,一直這樣遞歸下去,直到遍歷萬所有的路徑。八皇后問題是回溯算法的一個經典問題,還有一個經典的應用場景就是迷宮問題。
5) 分支限界算法
回溯算法是深度優先,那麼分支限界法就是廣度優先的一個經典的例子。回溯法一般來說是遍歷整個解空間,獲取問題的所有解,而分支限界法則是獲取一個解(一般來說要獲取最優解)。
C語言中的算法是指什麼
算法(Algorithm)是指完成一個任務所需要的具體步驟和方法。也就是說給定初始狀態或輸入數據,能夠得出所要求或期望的終止狀態或輸出數據。
算法常常含有重複的步驟和一些比較或邏輯判斷。不同的算法可能用不同的時間、空間或效率來完成同樣的任務。一個算法的優劣可以用空間複雜度與時間複雜度來衡量。
筆者學過數據結構就會對算法更加了解。
用c語言寫算法
直接手寫
size_t lenT, lenP, lenS;
char *e;
if ( !T || !P || !S ) return;
e = strstr( T, P );
if ( !e ) return;
lenT = strlen( T );
lenP = strlen( P );
lenS = strlen( S );
memmove( e+lenS, e+lenP, lenT+1-(e-T)-lenP );
memcpy( e, s, lenS );
假定三個長度 t、p、s 。
strstr: O(t*p)
strlen*3: O(t+p+s)
memmove: O(t-p)
memcpy:O(s)
最終複雜度 O(t*p+2(t+s)) – O(n^2)。
可以看出熱點在 strstr 函數。
如果將其通過 kmp 或類似的匹配算法優化成 O(n) 的,那麼複雜度可以直接降為 O(n) 。
c語言算法有哪些
這裡整理c語言常用算法,主要有:
交換算法
查找最小值算法
冒泡排序
選擇排序
插入排序
shell排序 (希爾排序)
歸併排序
快速排序
二分查找算法
查找重複算法
原創文章,作者:HWKUX,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/329113.html