C语言经典代码100是一本经典的C语言编程书籍,该书汇集了一百个经典的C语言代码,涵盖了各种编程领域,包括数据结构、算法、图形学、游戏开发等等。
以下是本人挑选出的几个经典代码:
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://easiu.com/common/images/4fFcarvMQ5_2.jpg
prev[j] = u;
}
}
}
}
delete[] visited;
}
```
3. Bresenham算法
Bresenham算法是一种绘制直线的算法,它的时间复杂度非常低,只需要进行加减法和位运算,因此非常适合在嵌入式系统和计算机游戏中使用。它的代码如下:
```
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://easiu.com/common/images/DXyqpMkiko_2.jpg
set_pixel(x1, y1);
int e2 = 2 * err;
if(e2 > -dy) {
err -= dy;
x1 += sx;
}
if(e2 < dx) {
err += dx;
y1 += sy;
}
}
}
```
以上是我挑选出的三个经典代码,它们分别代表了排序算法、图论算法和图形学算法的经典之作。在学习C语言编程时,我们可以通过学习这些经典代码来提高自己的编程能力和编程思维。
创维49e360e电视直播
奥克斯空调外机一直转
液晶电视机四个角暗影
tcl l42e77安装
空调室内外机 散热
万和燃气热水器会爆炸吗
led42ms11pd反复启动
led3260原理电路图
飞利浦107s6显示器故障
荣事达 小家电 售后
苏州格力空调 专卖店
海信变频空调代码64
创维背光板高压逆变器
t3731a康佳可以用u盘么
海尔BCD206冰箱内漏
惠而浦洗衣机启动不了
三星 bcd 270 温度显示
tcl王牌液晶电视机
厦华 lc-42 47r35液晶电视尺寸
洛阳lg空调售后服务