帮我介绍一下计算机中常见的算法, 并使用c语言写出算法的例子
时间: 2023-12-14 12:55:36 浏览: 72
1. 排序算法
常见的排序算法有冒泡排序、选择排序、插入排序、快速排序、归并排序等。
以快速排序为例,C语言实现代码如下:
```
void quickSort(int arr[], int left, int right) {
int i = left, j = right;
int pivot = arr[(left + right) / 2];
while (i <= j) {
while (arr[i] < pivot)
i++;
while (arr[j] > pivot)
j--;
if (i <= j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
i++;
j--;
}
}
if (left < j)
quickSort(arr, left, j);
if (i < right)
quickSort(arr, i, right);
}
```
2. 查找算法
常见的查找算法有顺序查找、二分查找、哈希查找等。
以二分查找为例,C语言实现代码如下:
```
int binarySearch(int arr[], int left, int right, int target) {
if (right >= left) {
int mid = left + (right - left) / 2;
if (arr[mid] == target)
return mid;
if (arr[mid] > target)
return binarySearch(arr, left, mid - 1, target);
return binarySearch(arr, mid + 1, right, target);
}
return -1;
}
```
3. 图形算法
常见的图形算法有广度优先搜索、深度优先搜索、最短路径算法等。
以广度优先搜索为例,C语言实现代码如下:
```
void breadthFirstSearch(int graph[][MAX], int start, int visited[]) {
int queue[MAX], front = 0, rear = 0;
visited[start] = 1;
queue[rear++] = start;
while (front < rear) {
int current = queue[front++];
printf("%d ", current);
for (int i = 0; i < MAX; i++) {
if (!visited[i] && graph[current][i] == 1) {
visited[i] = 1;
queue[rear++] = i;
}
}
}
}
```
阅读全文