首页 > 试题广场 >

冒泡排序

[编程题]冒泡排序
  • 热度指数:996 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
冒泡排序(Bubble Sort)
算法步骤
1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
3、针对所有的元素重复以上的步骤,除了最后一个。
4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

输入描述:
20,413,3,53,90,324


输出描述:
[3, 20, 53, 90, 324, 413]
示例1

输入

20,413,3,53,90,324

输出

[3, 20, 53, 90, 324, 413]

备注:
特别提醒:注意输入输出,严格按照示例。

    
#include <stdio.h>
void BubbleSort(int k[],int n)
{
    int i,j,temp;
    for(i=0;i<n-1;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if(k[i]>k[j])
            {
                temp=k[j];
                k[j]=k[i];
                k[i]=temp;    
            }
        }     
     }
}
int main()
{
    int i;
    int a[7]={20,413,3,53,90,324,1};
    BubbleSort(a,7);
    printf("排序后结果:");
    for(i=0;i<7;i++)
    {
        printf("%d \,",a[i]);
    }
    printf("\n\n");
    return 0;
}
    


发表于 2021-01-18 17:05:12 回复(0)
#include<stdio.h>

void BubbleSort(int* arr, int sz)
{
    int i = 0;
    int j = 0;
    int tmp = 0;
    for (i = 0; i < sz; i++)
    {
        for (j = 0; j < sz - i - 1;j++)
        {
            if (arr[j] > arr[j + 1])
            {
                tmp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = tmp;
            }
        }
    }
}

int main()
{
    char ch = 0;

    int i = 0;
    int j = 0;
    int arr[20] = { 0 };
    int sz = -0;
    while (1)
    {
        scanf("%d", &arr[i]);
        i++;
        if (getchar() == '\n')
        {
            break;
        }
    }
    sz = i;
    
    BubbleSort(arr, sz);

    printf("[");
    for (j = 0; j < sz; j++)
    {
        printf("%d", arr[j]);
        if (j < sz - 1)
        {
            printf(", ");
        }
    }
    printf("]");
    printf("\n");

    return 0;
}
发表于 2023-06-17 19:38:00 回复(0)
def bubble_sort(alist):
    """冒泡排序"""
    n = len(alist)
    for j in range(n - 1, 0, -1):
        flag = 0
        for i in range(j):
            if alist[i] > alist[i + 1]:
                alist[i], alist[i + 1] = alist[i + 1], alist[i]
                flag += 1
        if flag == 0:
            break


if __name__ == "__main__":
    data = list(map(int, input().strip().split(',')))
    bubble_sort(data)
    print(data)

发表于 2021-01-14 10:35:44 回复(0)
#include <iostream>
using namespace std;

void BubbleSort(int k[], int n) {
    int i = 0, j = 0, temp;
    for (i = 0; i < n - 1; i++) {
        for (j = i + 1; j < n; j++) {
            if (k[i] > k[j]) {
                temp = k[j];
                k[j] = k[i];
                k[i] = temp;
            }
        }
    }
}

int main() {
    int i, size;
    int a[20] = {0};
    for(size = 0;;){
        cin >> a[size];
        size++;
        if (getchar() == '\n')
        {
            break;
        }
    }
    BubbleSort(a, size);
    cout << "[";
    for (i = 0; i < size; i++) {
        if(i == size - 1)
            cout << a[i];
        else
            cout << a[i] << ", ";
    }
    cout << "]";
    return 0;
}
发表于 2024-01-05 16:38:59 回复(0)
list = [];
ao = input().split(",");

for num in ao:
    n = int(num);
    list.append(n);
    
for i in range(len(list)):
    for j in range(i+1,len(list)):
        a = list[i];
        b = list[j];
        if a>b:
            list[i] = b;
            list[j] = a;
print(list);

发表于 2023-08-27 17:21:41 回复(0)
package BubbleSort;  public class Test { public static void main(String args[]){
        Bubble bubble = new Bubble();  int[] arr = {20,413,3,53,90,324};  bubble.bubble(arr);  }
} class Bubble{ public void bubble(int[] sum){ if(sum == null || sum.length < 1){ return;  } //冒泡排序  for(int j = 0 ; j < sum.length ; j++){ for(int i = 0 ; i < sum.length - j - 1; i++){ if(sum[i] > sum[i+1]){ int tmp = sum[i];  sum[i] = sum[i + 1];  sum[i + 1] = tmp;  }
            }
        } for(int i = 0 ; i<sum.length -1; i++){
            System.out.print(sum[i] + ",");  }
        System.out.print(sum[sum.length-1]);  }
}
发表于 2023-07-04 22:05:43 回复(0)

def bubble_sort(list):
    for i in range(len(list)):
        for j in range(len(list)-i -1):
            if list[j]>list[j+1]:
                tmp = list[j]
                list[j] = list[j+1]
                list[j+1] = tmp
if __name__ == "__main__":
    data = list(map(int, input().split(',')))
    bubble_sort(data)
    print(data)

发表于 2022-06-17 23:39:40 回复(0)
let a = function bubble(nums){
   const len  = nums.length - 1;
    let temp;
    for(let i =0;i<len;i++){
        for(let j=0;j<len-i;j++){  
            if(nums[j]>nums[j+1]){
                temp = nums[j+1];
                nums[j+1] = nums[j];
                nums[j] = temp;
            }
        }
    }
    return nums;
}
var nums = readline().split(',').map(item=>parseInt(item));
print(a(nums))

发表于 2021-07-15 17:41:26 回复(0)