请实现bubble_sort函数,使排序后的数据从小到大排列。要求在bubble_sort函数内使用动态内存分配方式分配一个大小为n的数组,再读入待排序数据,排序完成后返回数组。
时间: 2023-04-28 17:01:30 浏览: 130
好的,以下是bubble_sort函数的实现:
int* bubble_sort(int n){
int* arr = (int*)malloc(n * sizeof(int)); // 动态分配大小为n的数组
printf("请输入%d个整数:\n", n);
for(int i=0; i<n; i++){
scanf("%d", &arr[i]); // 读入待排序数据
}
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;
}
}
}
return arr; // 返回排序后的数组
}
使用方法如下:
int main(){
int n;
printf("请输入待排序数据的个数:\n");
scanf("%d", &n);
int* sorted_arr = bubble_sort(n); // 调用bubble_sort函数进行排序
printf("排序后的结果为:\n");
for(int i=0; i<n; i++){
printf("%d ", sorted_arr[i]); // 输出排序后的数组
}
free(sorted_arr); // 释放动态分配的内存
return 0;
}
阅读全文