用C语言写出一个冒牌排序的算法
时间: 2024-05-14 22:14:18 浏览: 16
以下是用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;
}
}
}
}
```
其中,arr是待排序的数组,n是数组的长度。该算法的基本思想是每次比较相邻的两个元素,如果前一个元素比后一个元素大,则交换它们的位置。通过多次这样的比较和交换,最终将数组中的元素按从小到大的顺序排列。
相关问题
用C语言写出一个冒牌学的算法
以下是一个简单的冒泡排序算法,可能不是最优解,但足以模拟一个冒牌学的算法:
```
void fakeBubbleSort(int array[], int size) {
int temp;
for (int i = 0; i < size - 1; i++) {
for (int j = 0; j < size - i - 1; j++) {
if (array[j] > array[j + 1]) {
// 模拟交换位置
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
}
```
在这个算法中,我们使用了两个嵌套的循环,每次比较相邻的两个元素,如果前一个元素大于后一个元素,则模拟交换它们的位置。这种算法的时间复杂度是O(n^2),因此对于大型数据集可能不是最优选择。
用c语言写一个冒牌排序
好的,这里是一个用C语言实现的冒泡排序示例代码:
```c
void bubbleSort(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;
}
}
}
}
```
该函数接收一个数组和数组的长度作为参数,然后使用两个for循环遍历数组,比较相邻的元素并交换它们的位置,这样每一轮循环都会把当前未排序的最大元素“冒泡”到数组的末尾,直到所有元素都被排序完毕。