冒泡排序c语言函数代码
时间: 2024-02-26 22:50:49 浏览: 27
冒泡排序是一种简单的排序算法,它通过不断比较相邻的元素并交换位置来实现排序。以下是冒泡排序的C语言函数代码:
```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]) {
// 交换arr[j]和arr[j+1]的位置
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
```
这段代码中,`bubbleSort`函数接受一个整型数组`arr`和数组长度`n`作为参数。它使用两个嵌套的循环来比较相邻的元素,并根据需要交换它们的位置。外层循环控制比较的轮数,内层循环用于每一轮的比较和交换操作。
在每一轮比较中,如果当前元素大于下一个元素,则交换它们的位置。通过这样的比较和交换操作,每一轮都会将当前未排序部分的最大元素移动到末尾。经过n-1轮的比较和交换,最终实现了整个数组的排序。
相关问题
冒泡排序c语言完整代码
当然可以。冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
以下是一个使用C语言实现的冒泡排序的完整代码:
```c
#include <stdio.h>
void bubbleSort(int array[], int size) {
for (int step = 0; step < size - 1; ++step) {
for (int i = 0; i < size - step - 1; ++i) {
if (array[i] > array[i + 1]) {
// 交换元素
int temp = array[i];
array[i] = array[i + 1];
array[i + 1] = temp;
}
}
}
}
// 测试冒泡排序函数
void printArray(int array[], int size) {
for (int i = 0; i < size; ++i) {
printf("%d ", array[i]);
}
printf("\n");
}
int main() {
int data[] = {-2, 45, 0, 11, -9};
int size = sizeof(data) / sizeof(data);
bubbleSort(data, size);
printf("Sorted Array in Ascending Order:\n");
printArray(data, size);
return 0;
}
```
这段代码首先定义了一个冒泡排序函数`bubbleSort`,然后在主函数中创建了一个待排序的数组,调用`bubbleSort`函数进行排序,最后打印出排序后的数组。`printArray`函数用于打印数组元素。注意这段代码并未包含错误处理和边界检查,实际使用时请根据需要进行添加。
写一个冒泡排序C语言函数
好的,以下是一个冒泡排序的C语言函数实现:
```c
void bubble_sort(int arr[], int size)
{
int i, j, temp;
for (i = 0; i < size - 1; i++)
{
for (j = 0; j < size - i - 1; j++)
{
if (arr[j] > arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
```
这个函数接受一个整数数组和数组大小作为输入参数,然后使用冒泡排序算法对数组进行排序。排序完成后,原始数组将按升序排列。