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语言中的王者之树——红黑树:一场数据结构与算法的华丽舞蹈,让你的程序效率飙升,直击性能巅峰!"
【8月更文挑战第20天】红黑树是自平衡二叉查找树,通过旋转和重着色保持平衡,确保高效执行插入、删除和查找操作,时间复杂度为O(log n)。本文介绍红黑树的基本属性、存储结构及其C语言实现。红黑树遵循五项基本规则以保持平衡状态。在C语言中,节点包含数据、颜色、父节点和子节点指针。文章提供了一个示例代码框架,用于创建节点、插入节点并执行必要的修复操作以维护红黑树的特性。
49 1
|
28天前
|
机器学习/深度学习 存储 并行计算
C语言与机器学习:K-近邻算法实现
C语言与机器学习:K-近邻算法实现
35 0
|
3月前
|
存储 算法 C语言
二分查找算法的概念、原理、效率以及使用C语言循环和数组的简单实现
二分查找算法的概念、原理、效率以及使用C语言循环和数组的简单实现
|
3月前
|
算法 C语言
C语言----判断n是否是2的次方数,利用到按位与&,算法n&(n-1)
C语言----判断n是否是2的次方数,利用到按位与&,算法n&(n-1)
|
3月前
|
机器学习/深度学习 算法 C语言
详细介绍递归算法在 C 语言中的应用,包括递归的基本概念、特点、实现方法以及实际应用案例
【6月更文挑战第15天】递归算法在C语言中是强大力量的体现,通过函数调用自身解决复杂问题。递归涉及基本概念如自调用、终止条件及栈空间管理。在C中实现递归需定义递归函数,分解问题并设定停止条件。阶乘和斐波那契数列是经典应用示例,展示了递归的优雅与效率。然而,递归可能导致栈溢出,需注意优化。学习递归深化了对“分而治之”策略的理解。**
58 7
|
3月前
|
算法 Java C语言
Java中的算法与C语言中的函数
Java中的算法与C语言中的函数
32 2
|
4月前
|
存储 搜索推荐 算法
C语言数据结构算法,常用10种排序实战
插入排序(Insertion Sort) 希尔排序(Shell Sort) 选择排序(Selection Sort) 冒泡排序(Bubble Sort) 归并排序(Merge Sort) 快速排序(Quick Sort) 堆排序(Heap Sort) 基数排序(Radix Sort)
43 1
C语言数据结构算法,常用10种排序实战
|
4月前
|
算法 搜索推荐 C语言
C语言中的经典算法实现
C语言中的经典算法实现
44 1
|
3月前
|
存储 算法 搜索推荐
【数据结构和算法】--- 基于c语言排序算法的实现(2)
【数据结构和算法】--- 基于c语言排序算法的实现(2)
29 0
|
3月前
|
搜索推荐 算法 C语言
【数据结构和算法】--- 基于c语言排序算法的实现(1)
【数据结构和算法】--- 基于c语言排序算法的实现(1)
34 0