C语言的算法

简介: C语言的算法

C语言的算法

C语言中的算法是指一系列解决问题的明确和有限的步骤,这些步骤可以用C语言编写成程序来执行。算法是编程的核心,它决定了程序如何操作数据以达成特定的目标。以下是一些常见的C语言算法示例:

1. 排序算法

冒泡排序

c复制代码

 

#include <stdio.h> 

 

 

 

void bubbleSort(int arr[], int n) {

 

for (int i = 0; i < n-1; i++) {

 

for (int j = 0; j < n-i-1; j++) {

 

if (arr[j] > arr[j+1]) {

 

// 交换 arr[j] 和 arr[j+1]

 

int temp = arr[j];

 

arr[j] = arr[j+1];

 

arr[j+1] = temp;

 

}

 

}

 

}

 

}

 

 

 

int main() {

 

int arr[] = {64, 34, 25, 12, 22, 11, 90};

 

int n = sizeof(arr)/sizeof(arr[0]);

 

bubbleSort(arr, n);

 

printf("Sorted array: \n");

 

for (int i=0; i <n; i++)

 

printf("%d ", arr[i]);

 

return 0;

 

}

2. 搜索算法

线性搜索

c复制代码

 

#include <stdio.h> 

 

 

 

int linearSearch(int arr[], int n, int x) {

 

for (int i = 0; i < n; i++) {

 

if (arr[i] == x) {

 

return i; // 返回找到的元素的索引

 

}

 

}

 

return -1; // 如果没有找到,返回-1

 

}

 

 

 

int main() {

 

int arr[] = {2, 3, 4, 10, 40};

 

int x = 10;

 

int n = sizeof(arr)/sizeof(arr[0]);

 

int result = linearSearch(arr, n, x);

 

(result == -1) ? printf("Element is not present in array")

 

: printf("Element is present at index %d", result);

 

return 0;

 

}

3. 递归算法

阶乘计算

c复制代码

 

#include <stdio.h> 

 

 

 

unsigned long long factorial(int n) {

 

if (n == 0)

 

return 1;

 

else 

 

return n * factorial(n-1);

 

}

 

 

 

int main() {

 

int num = 5;

 

printf("Factorial of %d = %llu", num, factorial(num));

 

return 0;

 

}

4. 数组操作算法

数组元素反转

c复制代码

 

#include <stdio.h> 

 

 

 

void reverseArray(int arr[], int start, int end) {

 

while (start < end) {

 

int temp = arr[start];

 

arr[start] = arr[end];

 

arr[end] = temp;

 

start++;

 

end--;

 

}

 

}

 

 

 

int main() {

 

int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};

 

int n = sizeof(arr)/sizeof(arr[0]);

 

reverseArray(arr, 0, n-1);

 

printf("Reversed array: \n");

 

for (int i=0; i <n; i++)

 

printf("%d ", arr[i]);

 

return 0;

 

}

这些只是C语言中算法的一些基本示例。实际上,算法的种类和复杂度是无穷无尽的,涵盖了从简单排序和搜索到复杂的数据结构、图算法、动态规划等各个领域。学习算法和数据结构是提升编程能力和解决复杂问题能力的关键。

 

目录
相关文章
|
1月前
|
自然语言处理 算法 搜索推荐
C语言中谈论算法
C语言中谈论算法
10 0
C语言中谈论算法
|
1月前
|
算法 安全 C语言
使用C语言实现DES算法代码
使用C语言实现DES算法代码
|
1月前
|
自然语言处理 算法 搜索推荐
C语言用伪代码表示算法
C语言用伪代码表示算法
30 0
|
24天前
|
算法 C语言
【算法与数据结构】 C语言实现单链表队列详解2
【算法与数据结构】 C语言实现单链表队列详解
|
24天前
|
存储 算法 C语言
【算法与数据结构】 C语言实现单链表队列详解1
【算法与数据结构】 C语言实现单链表队列详解
|
1月前
|
存储 机器学习/深度学习 算法
C语言代码实现数据结构与算法
以上代码中,哈希表使用链表解决哈希冲突,每个链表节点包含一个键值对。hash函数用于计算键值对应的哈希值,insert函数用于向哈希表中插入一个键值对,若当前位置为空,则直接插入;否则,将新节点插入到链表末尾。search函数用于在哈希表中查找指定键值的值,若存在则返回其值,否则返回-1。
32 1
|
1月前
|
搜索推荐 算法 C语言
C语言排序算法
C语言排序算法
13 0
|
1月前
|
算法 数据处理 C语言
C语言核心之一的算法结构
C语言核心之一的算法结构
14 1
|
1月前
|
算法 搜索推荐 C语言
C语言的算法
C语言的算法
14 1
|
1月前
|
搜索推荐 算法 C语言
C语言实现冒泡排序算法
C语言实现冒泡排序算法
18 0