c语言冒泡排序自定义函数
时间: 2023-12-20 19:32:23 浏览: 124
```c
// 自定义冒泡排序函数
void bubble_sort(int arr[], int sz) {
for (int i = 0; i < sz - 1; i++) {
for (int j = 0; j < sz - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int arr[] = { 9, 8, 7, 4, 5, 6, 1, 2, 3, 0 };
int sz = sizeof(arr) / sizeof(arr[0]); // 计算数组元素个数
bubble_sort(arr, sz); // 调用自定义冒泡排序函数
for (int i = 0; i < sz; i++) {
printf("%d ", arr[i]); // 打印数组,检验排序结果
}
return 0;
}
```
相关问题
c语言顺序表自定义排序函数
在 C 语言中,如果你想要对顺序表(如数组或动态数组)进行自定义排序,你可以创建一个自定义的排序函数。这个函数通常采用一种排序算法,比如冒泡排序、选择排序、插入排序、快速排序、归并排序等。这里以冒泡排序为例简单介绍:
```c
#include <stdio.h>
// 自定义排序函数,假设元素是一个结构体或者基本数据类型,并实现了比较操作
void customSort(int arr[], int n) {
int i, j;
for (i = 0; i < n - 1; i++) {
// 冒泡法逐个比较相邻元素,如果逆序就交换
for (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 data[] = {64, 34, 25, 12, 22, 11, 90};
int size = sizeof(data) / sizeof(data[0]);
customSort(data, size);
printf("Sorted array: \n");
for (int i = 0; i < size; i++)
printf("%d ", data[i]);
return 0;
}
```
c语言指针自定义函数排序
以下是一个使用指针的自定义函数对C语言中的整型数组进行排序的例子:
```c
#include <stdio.h>
void sort(int *arr, int n) {
int i, j, temp;
for (i = 0; i < n - 1 i++) {
for (j = i + 1; j < n; j++) {
if (*(arr + i) > *(arr + j)) {
temp = *(arr + i);
*(arr + i) = *(arr + j);
*(arr + j) = temp;
}
}
}
}
int main() {
int arr[] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
int n = sizeof(arr) / sizeof(int);
int i;
printf("Before sorting: ");
for (i = 0; i < n; i++) {
printf("%d ", *(arr + i));
}
sort(arr, n);
printf("\nAfter sorting: ");
for (i = 0; i < n; i++) {
printf("%d ", *(arr + i));
}
return 0;
}
```
该程序首先定义了一个名为sort的自定义函数,该函数接受一个整型指针arr和一个整型n作为参数,其中arr指向需要排序的整型数组,n表示数组的长度。sort函数使用冒泡排序算法对数组进行排序,最后将排序后的数组输出。
在主函数中,我们定义了一个整型数组arr,并使用sizeof运算符计算出数组的长度n。然后,我们输出排序前的数组,调用sort函数对数组进行排序,最后输出排序后的数组。
阅读全文