1.冒泡排序
什么是冒泡排序:
使用冒泡排序算法对 n 个数据进行排序,实现思路是:从待排序序列中找出一个最大值或最小值,这样的操作执行 n-1 次,最终就可以得到一个有序序列。
比如有一个数组:14, 33, 27, 35, 10
1.比较14和33的大小显然后者更大,不需要交换它们的位置,序列不发生改变。
2.比较 33 和 27 的大小,前者大于后者,交换它们的位置,新的序列如下所示。
14 27 33 35 10
3.比较 33 和 35 的大小,后者更大,不需要交换它们的位置,序列不发生改变。
4.比较 35 和 10 的大小,前者大于后者,交换它们的位置,新的序列如下所示。
14 27 33 10 35
可以看到,序列中值最大的元素 35 被移动到了序列的末尾。整个查找最大值的过程中,最大的元素就像水里的气泡一样,一点一点地“冒”了出来,这也是将该算法命名为冒泡排序算法的原因。
C++:
#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]) {
int temp = arr[j];
arr[j = arr[j + 1];
arr[j + 1 = temp;
}
}
}
}
int main() {
int arr[] = {5, 6, 8, 4, 7, 78, 9, 66, 88, 56};
int n = sizeof(arr) / sizeof(arr << endl;
}
system("pause");
return 0;
}
这段代码中,bubbleSort函数是用来进行冒泡排序的。首先,我们定义了一个外层循环,用来控制比较的轮数。内层循环用来进行相邻元素的比较并交换。如果前一个元素比后一个元素大,则交换它们的位置。这样,每一轮比较结束后,最大的元素就会“冒泡”到数组的末尾。重复执行这个过程,直到所有元素都被排序好为止。
在main函数中,我们定义了一个包含10个元素的数组arr,并计算出数组的长度n。然后,调用bubbleSort函数对数组进行排序。最后,通过循环将排序后的数组输出到屏幕上。
Python:
def bubbleSort(arr):
for i in range(1, len(arr)):
for j in range(0, len(arr)-i):
if arr[j > arr[j+1]:
# if arr[j < arr[j+1]:
arr[j], arr[j+1 = arr[j+1], arr[j]
return arr
if __name__ == "__main__":
nums = [1, 42, 65, 876, 34, 656, 4, 6757, 89, 24, 65, 42]
print("start:", nums)
print("冒泡排序:", bubbleSort(nums))
这段代码使用了两层循环来进行排序。外层循环控制排序的趟数,内层循环用于比较相邻元素的大小并进行交换。每一趟排序都会将当前未排序元素中的最大(或最小)元素冒泡到合适的位置。最终得到一个有序的数组。
在这个代码示例中,我们给定了一个初始数组nums
,然后调用bubbleSort
函数进行排序,并打印出排序后的结果。可以根据需要修改nums
数组来进行不同的测试。
注意,在代码中有两处注释,分别用于控制升序和降序排序,你可以根据自己的需求选择适合的方式。
制作不容易,记得点赞,关注啊!