C語言經(jīng)典代碼100是一本經(jīng)典的C語言編程書籍,該書匯集了一百個經(jīng)典的C語言代碼,涵蓋了各種編程領域,包括數(shù)據(jù)結(jié)構(gòu)、算法、圖形學、游戲開發(fā)等等。
以下是本人挑選出的幾個經(jīng)典代碼:
1. 快速排序算法
快速排序是常見的排序算法,它的時間復雜度為O(nlogn)。它的代碼如下:
```
void quick_sort(int arr[], int left, int right) {
int i, j, pivot;
if(left < right) {
i = left;
j = right + 1;
pivot = arr[left];
do {
do i++; while(arr[i] < pivot);
do j--; while(arr[j] > pivot);
if(i < j) swap(arr[i], arr[j]);
} while(i < j);
swap(arr[left], arr[j]);
quick_sort(arr, left, j - 1);
quick_sort(arr, j + 1, right);
}
}
```
2. Dijkstra算法
Dijkstra算法是一種求解最短路徑的算法,它的時間復雜度為O(n^2)。它的代碼如下:
```
void Dijkstra(int n, int start, int* dist, int* prev, int** matrix) {
bool* visited = new bool[n];
for(int i = 0; i < n; i++) {
dist[i] = matrix[start][i];
visited[i] = false;
if(dist[i] == INF) prev[i] = -1;
else prev[i] = start;
}
dist[start] = 0;
visited[start] = true;
for(int i = 1; i < n; i++) {
int min = INF;
int u = start;
for(int j = 0; j < n; j++) {
if(!visited[j] && dist[j] < min) {
min = dist[j];
u = j;
}
}
visited[u] = true;
for(int j = 0; j < n; j++) {
if(!visited[j] && matrix[u][j] < INF) {
int newdist = dist[u] + matrix[u][j];
if(newdist < dist[j]) {
dist[j] = newdist;
http://m.absolutelycasino.com/common/images/DKlSQS9lov_1.jpg
prev[j] = u;
}
}
}
}
delete[] visited;
}
```
3. Bresenham算法
Bresenham算法是一種繪制直線的算法,它的時間復雜度非常低,只需要進行加減法和位運算,因此非常適合在嵌入式系統(tǒng)和計算機游戲中使用。它的代碼如下:
```
void Bresenham(int x1, int y1, int x2, int y2) {
int dx = abs(x2 - x1);
int dy = abs(y2 - y1);
int sx = (x1 < x2) ? 1 : -1;
int sy = (y1 < y2) ? 1 : -1;
int err = dx - dy;
while(x1 != x2 || y1 != y2) {
http://m.absolutelycasino.com/common/images/2qdvcpphxo0.jpg
set_pixel(x1, y1);
int e2 = 2 * err;
if(e2 > -dy) {
err -= dy;
x1 += sx;
}
if(e2 < dx) {
err += dx;
y1 += sy;
}
}
}
```
以上是我挑選出的三個經(jīng)典代碼,它們分別代表了排序算法、圖論算法和圖形學算法的經(jīng)典之作。在學習C語言編程時,我們可以通過學習這些經(jīng)典代碼來提高自己的編程能力和編程思維。
深圳布吉奧克斯空調(diào)售后
液晶電視電源燈亮熒屏不顯示
海信智能電視原理圖
thx201電磁爐
長虹930v電視
空調(diào)制冷為什么會滴水
空調(diào)應急開關強制制冷
空調(diào)制熱外機吹冷風
水冷空調(diào)有海爾的么
創(chuàng)維液晶電源電路圖
液晶電視聲音越來越小
aux空調(diào)質(zhì)保期
東芝授權(quán)售后維修站
液晶電視電源板維修圖解
空調(diào)啟動時電腦重啟
天鵝風冷柜機故障代碼
海爾空調(diào) 加氟利昂
開關電源過流保護電路
電磁爐可調(diào)電阻的作用
重慶格力電器待遇