以下是详细讲解“C程序 冒泡排序”的完整使用攻略。
冒泡排序概述
冒泡排序是一种简单的排序算法,它重复地遍历要排序的序列,一次比较两个元素,如果它们的顺序错误就把它们交换过来,直到没有元素需要交换,排序完成。
冒泡排序的时间复杂度为O(n²)。
以下是C语言中实现冒泡排序的代码示例:
void bubble_sort(int *arr, int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
该函数的功能是对传入的整型数组进行排序,n为数组的长度。
冒泡排序使用攻略
步骤1:准备要排序的数组
在使用冒泡排序之前,需要准备要排序的数组。可以通过以下代码定义一个大小为5的整型数组并赋初值:
int arr[5] = {2, 5, 1, 3, 4};
步骤2:调用排序函数进行排序
调用冒泡排序函数对数组进行排序,排序代码如下:
bubble_sort(arr, 5);
其中,第一个参数为要排序的数组,第二个参数为数组的长度。
步骤3:验证排序结果
在排序完成后,可以通过遍历数组的方式验证排序结果,代码如下:
int i;
for (i = 0; i < 5; i++) {
printf("%d ", arr[i]);
}
完整代码如下所示:
#include <stdio.h>
void bubble_sort(int *arr, int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int arr[5] = {2, 5, 1, 3, 4};
bubble_sort(arr, 5);
int i;
for (i = 0; i < 5; i++) {
printf("%d ", arr[i]);
}
return 0;
}
运行结果如下:
1 2 3 4 5
另外,我们再举一个排序字符串的例子,代码如下:
#include <stdio.h>
#include <string.h>
void bubble_sort(char *arr[], int n) {
int i, j;
char *temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (strcmp(arr[j], arr[j + 1]) > 0) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
char *arr[] = {"Hello", "World", "C", "Programming", "Nice"};
bubble_sort(arr, 5);
int i;
for (i = 0; i < 5; i++) {
printf("%s ", arr[i]);
}
return 0;
}
其中,数组arr是一个字符串数组,使用strcmp函数进行比较,运行结果如下:
C Hello Nice Programming World
以上就是冒泡排序的完整使用攻略,包括了步骤和示例代码的讲解。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C程序 冒泡排序 - Python技术站