c语言算法推荐 一些经典的CC语言基础算法及代码

1周前 (09-29)

C语言作为一门广泛应用的编程语言,具有较高的效率和灵活性。在学习C语言的过程中,掌握基本的算法和代码是非常重要的。下面,将为您介绍一些经典的C语言基础算法及其代码。

1. 二分查找算法:

二分查找是一种高效的查找算法,适用于已排序的数组。它的基本思想是将数组分成两部分,通过比较目标值与数组中间元素的大小关系,确定目标值是否在前半部分或后半部分,并继续在相应的子数组中进行查找,直到找到目标值或确定不存在。

```c

int binarySearch(int arr[], int target, int low, int high) {

while (low <= high) {

int mid = low + (high - low) / 2;

if (arr[mid] == target)

return mid;

else if (arr[mid] < target)

low = mid + 1;

else

high = mid - 1;

}

return -1; // 目标值不存在

}

```

2. 冒泡排序算法:

冒泡排序是一种简单直观的排序算法,它的基本思想是比较相邻两个元素的大小关系,并根据需要交换它们的位置,使较大(或较小)的元素逐渐向数组的一端移动。

```c

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]) {

int temp = arr[j];

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

arr[j + 1] = temp;

}

}

}

}

```

3. 快速排序算法:

快速排序是一种基于分治思想的排序算法,它的基本思想是选择一个基准元素,将数组分成两部分,使得左半部分的元素都小于基准元素,右半部分的元素都大于基准元素,然后递归地对左右两个子数组进行排序。

```c

int partition(int arr[], int low, int high) {

int pivot = arr[high];

int i = (low - 1);

for (int j = low; j <= high - 1; j++) {

if (arr[j] < pivot) {

i++;

int temp = arr[i];

arr[i] = arr[j];

arr[j] = temp;

}

}

int temp = arr[i + 1];

arr[i + 1] = arr[high];

arr[high] = temp;

return (i + 1);

}

void quickSort(int arr[], int low, int high) {

if (low < high) {

int pi = partition(arr, low, high);

quickSort(arr, low, pi - 1);

quickSort(arr, pi + 1, high);

}

}

```

这些经典的C语言基础算法能够帮助您提升编程能力,并在实际应用中发挥重要作用。通过理解和掌握这些算法的思想和代码实现,您将能够更好地解决各种问题,同时也为学习其他高级算法打下坚实的基础。希望这篇文章对您有所帮助!