C 排序算法的使用攻略
1. 确定排序算法
首先需要确定使用哪种排序算法。
C 语言支持多种排序算法,例如:冒泡排序、选择排序、插入排序、归并排序、快速排序等。
对于不同的排序场景,选择不同的排序算法,可以提高排序的效率。
2. 实现排序函数
在 C 语言中,可以自己实现排序函数,也可以使用库函数。
以下是一个简单的冒泡排序函数的实现:
void bubble_sort(int arr[], int len)
{
int i, j, temp;
for (i = 0; i < len - 1; i++)
{
for (j = 0; j < len - i - 1; j++)
{
if (arr[j] > arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
函数的参数是一个数组和数组的长度。函数中的排序算法是冒泡排序。
3. 调用排序函数
调用排序函数时,需要传入待排序的数组和数组的长度。
下面是一个示例代码:
#include <stdio.h>
void bubble_sort(int arr[], int len);
int main()
{
int arr[] = {4, 3, 6, 1, 9, 0, 2, 5, 7, 8};
int len = sizeof(arr) / sizeof(int);
bubble_sort(arr, len);
int i;
for (i = 0; i < len; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
程序的输出结果是:
0 1 2 3 4 5 6 7 8 9
可以看到,数组已经按照从小到大的顺序排好了序。
4. 示例代码
以下是一个使用快速排序算法的示例代码:
#include <stdio.h>
void quick_sort(int arr[], int left, int right);
int partition(int arr[], int left, int right);
int main()
{
int arr[] = {4, 3, 6, 1, 9, 0, 2, 5, 7, 8};
int len = sizeof(arr) / sizeof(int);
quick_sort(arr, 0, len - 1);
int i;
for (i = 0; i < len; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
void quick_sort(int arr[], int left, int right)
{
int p;
if (left < right)
{
p = partition(arr, left, right);
quick_sort(arr, left, p - 1);
quick_sort(arr, p + 1, right);
}
}
int partition(int arr[], int left, int right)
{
int pivot = arr[left];
int i = left + 1;
int j = right;
int temp;
while (i <= j)
{
while (i <= j && arr[i] <= pivot)
{
i++;
}
while (i <= j && arr[j] > pivot)
{
j--;
}
if (i < j)
{
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
temp = arr[left];
arr[left] = arr[j];
arr[j] = temp;
return j;
}
输出结果如下:
0 1 2 3 4 5 6 7 8 9
这个示例使用了快速排序算法对数组进行排序。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C 排序算法 - Python技术站