冒泡排序从小到大排序
时间: 2024-06-21 19:01:27 浏览: 87
冒泡排序是一种简单的排序算法,其基本思想是重复地遍历要排序的序列,每次比较相邻的两个元素,如果顺序不对则交换它们的位置,直到没有元素需要交换,排序完成。以下是冒泡排序的具体步骤:
1. 比较相邻的元素。如果第一个比第二个大,就交换它们的位置。
2. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。完成后,最后的元素会是最大的数。
3. 针对所有的元素重复以上的步骤,除了最后一个。
4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
以下是冒泡排序从小到大排序的示例代码:
```python
def bubbleSort(arr):
n = len(arr)
for i in range(n):
# Last i elements are already sorted
for j in range(0, n-i-1):
# traverse the array from 0 to n-i-1
# Swap if the element found is greater
# than the next element
if arr[j] > arr[j+1] :
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
```
相关问题
用c语言冒泡排序从小到大排序10个数
在C语言中,冒泡排序是一种简单的排序算法,它通过反复交换相邻的元素,将较大的数逐步“浮”到数组的顶部,直到整个序列有序。以下是使用冒泡排序对10个整数从小到大进行排序的一个基本示例:
```c
#include <stdio.h>
void bubble_sort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) { // 遍历所有元素
for (int j = 0; j < n - 1 - i; j++) { // 每轮遍历都会减少比较次数
if (arr[j] > arr[j + 1]) { // 如果当前元素大于下一个
// 交换两个元素
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int numbers[10] = {5, 9, 1, 7, 2, 6, 8, 3, 4, 10}; // 待排序的10个数字
int len = sizeof(numbers) / sizeof(numbers[0]);
printf("Before sorting:\n");
for (int i = 0; i < len; i++) {
printf("%d ", numbers[i]);
}
bubble_sort(numbers, len);
printf("\nAfter sorting in ascending order:\n");
for (int i = 0; i < len; i++) {
printf("%d ", numbers[i]);
}
return 0;
}
```
这个程序首先初始化一个包含10个数的数组,然后调用`bubble_sort`函数进行排序,最后打印出排序后的结果。
对一个数组{3,4,5}冒泡排序从小到大排序代码
以下是 Python 代码实现:
```python
arr = [3, 4, 5]
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]
print("从小到大排序后的数组为:", arr)
```
输出结果为:
```
从小到大排序后的数组为: [3, 4, 5]
```
冒泡排序的基本思想是:每次比较相邻两个元素,如果前面的元素大于后面的元素,则交换它们的位置。通过多次比较和交换,把最大的元素逐步“沉”到数组底部,而最小的元素则“浮”到数组顶部,从而实现排序。
阅读全文