c++冒泡排序代码怎么写
时间: 2023-03-13 18:22:49 浏览: 56
冒泡排序的基本原理是:比较相邻的元素,如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这样在最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 用C语言实现冒泡排序的代码如下:int array[100], n, c, d, swap;
printf("Enter number of elements\n");
scanf("%d", &n);
printf("Enter %d integers\n", n);
for (c = 0; c < n; c++)
scanf("%d", &array[c]);
for (c = 0 ; c < ( n - 1 ); c++)
{
for (d = 0 ; d < n - c - 1; d++)
{
if (array[d] > array[d+1]) /* For decreasing order use < */
{
swap = array[d];
array[d] = array[d+1];
array[d+1] = swap;
}
}
}
printf("Sorted list in ascending order:\n");
for ( c = 0 ; c < n ; c++ )
printf("%d\n", array[c]);
相关问题
C++ 冒泡排序代码怎么写?
### 回答1:
冒泡排序代码的写法可以有不同的实现方式,具体可以参考下面的代码:for i in range(len(list)-1):
for j in range(len(list)-i-1):
if list[j] > list[j+1]:
list[j], list[j+1] = list[j+1], list[j]
### 回答2:
冒泡排序是一种简单直观的排序算法。其基本思想是反复地交换相邻的未按顺序的元素,直到所有元素按照顺序排列。以下是冒泡排序的代码实现:
```
def bubble_sort(arr):
n = len(arr) # 获取数组长度
for i in range(n - 1): # 迭代n-1次
for j in range(n - 1 - i): # 每次迭代比较次数减少
if arr[j] > arr[j + 1]: # 如果前面元素大于后面元素,则进行交换
arr[j], arr[j + 1] = arr[j + 1], arr[j] # 交换元素位置
return arr
```
在这段代码中,首先通过`len(arr)`获取数组的长度`n`。然后使用两个嵌套的`for`循环,外循环控制迭代次数,内循环用于比较相邻元素并进行交换。内循环每次都会让比较的次数减少,因为每次迭代都会将已排序的最大元素移到数组的最后,不再参与比较。通过比较相邻元素的大小,如果前一个元素大于后一个元素,则进行交换。最后,返回排序后的数组。
冒泡排序的时间复杂度是O(n^2),其中n是数组的长度。
### 回答3:
冒泡排序是一种简单的排序算法,其基本思想是通过重复比较相邻的两个元素,如果顺序不对则交换,直到整个序列有序为止。以下是一种冒泡排序的代码实现:
```python
def bubble_sort(arr):
n = len(arr)
for i in range(n):
# 每一轮比较后最大的元素都会被移到末尾,因此每次比较的元素个数会减少
for j in range(0, n-i-1):
# 如果相邻的两个元素顺序不对,则交换它们
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
```
以上的冒泡排序代码通过两层循环,外层循环控制比较的轮数,内层循环进行具体的比较和交换操作。通过不断地比较相邻元素,每轮排序后最大的元素都会被移到末尾,最终整个序列将按升序排列。
该代码接受一个数组作为输入,对数组进行原地排序并返回排序后的结果。例如,对于输入数组 `[4, 2, 7, 1, 5]`,调用 `bubble_sort([4, 2, 7, 1, 5])` 将返回 `[1, 2, 4, 5, 7]`。
C++冒泡排序代码示例
当然可以!以下是一个简单的C++冒泡排序代码示例:
```cpp
#include <iostream>
using namespace std;
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;
}
}
}
}
int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr)/sizeof(arr);
bubbleSort(arr, n);
cout << "排序后的数组:";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
return 0;
}
```
这段代码实现了冒泡排序算法。冒泡排序的基本思想是通过相邻元素的比较和交换,将较大的元素逐渐“冒泡”到数组的末尾。在每一轮的比较中,如果当前元素大于下一个元素,则交换它们的位置。