c語言算法
2022-02-26
- 相關(guān)推薦
擴(kuò)展資料
C語言是一門面向過程的計(jì)算機(jī)編程語言,與C++、Java等面向?qū)ο缶幊陶Z言有所不同。C語言的設(shè)計(jì)目標(biāo)是提供一種能以簡易的方式編譯、處理低級(jí)存儲(chǔ)器、僅產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語言。C語言描述問題比匯編語言迅速、工作量小、可讀性好、易于調(diào)試、修改和移植,而代碼質(zhì)量與匯編語言相當(dāng)。C語言一般只比匯編語言代碼生成的目標(biāo)程序效率低10%-20%。因此,C語言可以編寫系統(tǒng)軟件。
當(dāng)前階段,在編程領(lǐng)域中,C語言的運(yùn)用非常之多,它兼顧了高級(jí)語言和匯編語言的優(yōu)點(diǎn),相較于其它編程語言具有較大優(yōu)勢(shì)。計(jì)算機(jī)系統(tǒng)設(shè)計(jì)以及應(yīng)用程序編寫是C語言應(yīng)用的兩大領(lǐng)域。同時(shí),C語言的普適較強(qiáng),在許多計(jì)算機(jī)操作系統(tǒng)中都能夠得到適用,且效率顯著。
C語言擁有經(jīng)過了漫長發(fā)展歷史的完整的理論體系,在編程語言中具有舉足輕重的地位。
所謂算法,就是為解決某一特定問題而采取的具體工作步驟和方法。當(dāng)編寫一個(gè)程序的時(shí)候,總是要先想好這個(gè)程序是干什么的,應(yīng)該如何實(shí)現(xiàn)這個(gè)目標(biāo),程序應(yīng)該先完成什么功能,接下來進(jìn)行什么操作,處理這個(gè)程序的格式是什么,等等一系列的問題,在有些情況下,還需要涉及其他領(lǐng)域,如數(shù)學(xué),物理,因此在考慮以上所有因素的時(shí)候,都應(yīng)該考慮一個(gè)關(guān)鍵的問題——算法;舅惴ú呗园ǎ好杜e法、歸納法、遞歸法以及排序的各類方法。
1、枚舉法:
常被稱之為窮舉法,是指從可能的集合中一一枚舉各個(gè)元素,用題目給定的約束條件判定哪些是無用的,哪些是有用的。能使命題成立者,即為問題的解。
采用枚舉算法解題的基本思路:
a、確定枚舉對(duì)象、枚舉范圍和判定條件;
b、一一枚舉可能的解,驗(yàn)證是否是問題的解
2、歸納法:
這是一個(gè)相對(duì)比較“聰明”的方法,看到問題之后,可以通過分析歸納,找出從變量舊值出發(fā)求出新值的規(guī)律。
可以用歸納法解決的問題,它們的相鄰數(shù)之間有著明顯的規(guī)律性的變化,通?梢詮某跏紬l件進(jìn)行一定的歸納求出下一個(gè)值,并利用這種規(guī)律性一步一步遞推到結(jié)果。如循環(huán)累乘、循環(huán)累加等。
3、遞歸法:
一般使用在函數(shù)的調(diào)用上,所謂函數(shù)的“遞歸調(diào)用”是指一個(gè)函數(shù)直接調(diào)用自己(即直接遞歸調(diào)用)或通過其他函數(shù)間接地調(diào)用自己(即間接遞歸調(diào)用)。
4、排序的各類方法:
a、冒泡排序
就是將被排序的記錄數(shù)組arr[0]…arr[n]進(jìn)行排列,每個(gè)記錄arr[i]看作是“氣泡”。根據(jù)輕氣泡不能在重氣泡之下的原則,從下到上掃描數(shù)組arr,凡掃描到違反本原則的輕氣泡,就使其向上“漂浮”。如此反復(fù)進(jìn)行,直到最后任何兩個(gè)氣泡輕者在上,重者在下為止。
b、選擇排序
這是一種很簡單的排序方法,它的基本解題思路:選擇法排序(設(shè)對(duì)N個(gè)數(shù)進(jìn)行排序)是每次從待排序數(shù)據(jù)中選擇最小的數(shù),與相應(yīng)位置上的數(shù)交換。