冒泡排序(Bubble Sort)是基于交换的排序,它重复走过需要排序的元素,依次比较相邻的两个元素的大小,保证最后一个数字一定是最大的,即它的顺序已经排好,下一轮只需要保证前面 n-1 个元素的顺序即可。 之所以称为冒泡,是因为最大/最小的数,每一次都往后面冒,就像是水里面的气泡一样。 排序的步骤如下: - 从头开始,比较相邻的两个数,如果第一个数比第二个数大,那么就交换它们位置。
- 从开始到最后一对比较完成,一轮结束后,最后一个元素的位置已经确定。
- 除了最后一个元素以外,前面的所有未排好序的元素重复前面两个步骤。
- 重复前面 1 ~ 3 步骤,直到都已经排好序。
冒泡排序算法,分别用汇编语言,C语言,C++,java,python编写出来
下面是冒泡排序算法的不同语言实现示例:
1. 汇编语言:
- assembly
- section .data
- array db 5, 2, 8, 1, 9, 3, 7, 4, 6
- array_len equ $ - array
- section .text
- global _start
- _start:
- mov ecx, array_len
- dec ecx
- outer_loop:
- mov esi, 0
- inner_loop:
- mov eax, [array + esi]
- cmp eax, [array + esi + 1]
- jg swap
- inc esi
- cmp esi, ecx
- jle inner_loop
- dec ecx
- cmp ecx, 0
- jg outer_loop
- ; 排序完成,继续其他操作或退出程序
复制代码游客,本帖隐藏的内容需要积分高于 5 才可浏览,您当前积分为 0
2. C语言:
- #include <stdio.h>
- void bubbleSort(int array[], int size) {
- for (int i = 0; i < size - 1; i++) {
- for (int j = 0; j < size - i - 1; j++) {
- if (array[j] > array[j + 1]) {
- int temp = array[j];
- array[j] = array[j + 1];
- array[j + 1] = temp;
- }
- }
- }
- }
复制代码游客,本帖隐藏的内容需要积分高于 5 才可浏览,您当前积分为 0
3. C++:
- #include <iostream>
- using namespace std;
- void bubbleSort(int array[], int size) {
- for (int i = 0; i < size - 1; i++) {
- for (int j = 0; j < size - i - 1; j++) {
- if (array[j] > array[j + 1]) {
- int temp = array[j];
- array[j] = array[j + 1];
- array[j + 1] = temp;
- }
- }
- }
- }
复制代码游客,本帖隐藏的内容需要积分高于 5 才可浏览,您当前积分为 0
4. Java:
- public class BubbleSort {
- public static void bubbleSort(int[] array) {
- int size = array.length;
- for (int i = 0; i < size - 1; i++) {
- for (int j = 0; j < size - i - 1; j++) {
- if (array[j] > array[j + 1]) {
- int temp = array[j];
- array[j] = array[j + 1];
- array[j + 1] = temp;
- }
- }
- }
- }
-
- }
复制代码 游客,本帖隐藏的内容需要积分高于 5 才可浏览,您当前积分为 0
5. Python:
- def bubbleSort(array):
- size = len(array)
- for i in range(size - 1):
- for j in range(size - i - 1):
- if array[j] > array[j + 1]:
- array[j], array[j + 1] = array[j + 1], array[j]
复制代码游客,本帖隐藏的内容需要积分高于 5 才可浏览,您当前积分为 0
这些示例展示了使用不同编程语言实现冒泡排序算法的方式。请根据您选择的编程语言,使用相应的示例来实现冒泡排序算法。
扫码关注微信公众号,了解更多算法内容
扫码关注微信公众号,免费查看完整算法内容。 |