冒泡算法
时间: 2023-07-10 19:19:32 浏览: 57
冒泡排序算法是一种简单的排序算法,它通过重复遍历要排序的列表,比较相邻两个元素的大小,并交换不符合顺序的元素位置,直到没有任何两个元素需要交换为止。该算法的时间复杂度为O(n^2)。
下面是一个冒泡排序的示例代码:
```
void bubbleSort(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]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
```
该函数接受一个整数数组和数组长度作为参数,使用嵌套循环对数组进行遍历,并比较相邻两个元素的大小,如果前一个元素大于后一个元素,则交换它们的位置。最终,数组将按升序排列。
相关问题
实现冒泡算法
冒泡排序算法是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。
以下是冒泡算法的代码实现:
```python
def bubble_sort(arr):
n = len(arr)
for i in range(n):
# 从第一个元素开始,依次比较相邻的两个元素
for j in range(n-i-1):
if arr[j] > arr[j+1]:
# 如果前一个元素比后一个元素大,则交换它们的位置
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
```
这个函数接受一个列表 `arr`,并返回排序后的列表。它在外层循环中遍历整个列表,内层循环比较相邻的元素并进行交换操作,直到整个列表排序完毕。时间复杂度为 $O(n^2)$。
Python 冒泡算法
冒泡算法是一种排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就将它们交换过来,直到没有元素再需要交换,即为排序完成。
以下是 Python 冒泡算法的实现:
```python
def bubble_sort(arr):
n = len(arr)
# 遍历所有数组元素
for i in range(n):
# Last i elements are already in place
for j in range(0, n-i-1):
# 从 0 到 n-i-1 遍历数组
# 如果当前元素大于下一个元素,则交换它们的位置
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
```
在上述代码中,`bubble_sort` 函数接受一个数组作为参数,然后使用两个 `for` 循环来遍历数组中的所有元素。外部循环在每次迭代时将数组中的最后 `i` 个元素视为已排序的元素。内部循环从数组的第一个元素开始,比较相邻的元素,如果它们的顺序错误,就交换它们的位置。内部循环会一直遍历直到最后一个未排序的元素。最后,函数返回排序后的数组。
下面是一个使用冒泡排序算法对数组进行排序的示例:
```python
arr = [64, 34, 25, 12, 22, 11, 90]
sorted_arr = bubble_sort(arr)
print(sorted_arr)
```
输出结果为:
```
[11, 12, 22, 25, 34, 64, 90]
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)