用Python或C实现冒泡算法(BubbleSort)来对随机输入的数据排序

前言

作者写这篇文章的目的是为了补充网上对于随机输入数据的空缺,因此对于给定已知的一串数字进行排序的代码作者不再编写

BubbleSort算法

作为一种入门的排序算法, 冒泡排序(BubbleSort) 通过比较相邻两个数的大小,按照从大到小或者从小到大的要求来交换他们的位置,直到不再需要交换为止,最终实现数字的按顺序排列.我们可以通过下图来更好地了解其原理.
在这里插入图片描述

算法的实现

C语言

#include<stdio.h>
#include<stdlib.h>
void bubbleSort(int arr[], int len)
{
	int temp;
	int i, j;
	for (i = 0; i < len - 1; i++)
	{
		for (j = 0; j < len - 1 - i; j++)
		{
			if (arr[j] > arr[j + 1])
			{
				temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
			}
		}
	}
}

int main(void)
{
	int arr[10];
	int i;
	printf("请输入十个数字:\n");
	for (i = 0; i < 10; i++)
		scanf_s("%d", &arr[i]);
	bubbleSort(arr, 10);
	printf("排序后的结果为:\n");
	for (i = 0; i < 10; i++)
		printf("%d ", arr[i]);
	putchar('\n');
	system("pause");
	return 0;
}

Python

def BubbleSort(arr):
    for i in range(len(arr) - 1):
        for j in range(len(arr) - i -1):
            if arr[j]>arr[j+1]:
                temp=arr[j+1]
                arr[j+1]=arr[j]
                arr[j]=temp
n=int(input("请输入数字的个数:"))
array=[]
for i in range(n):
    temp=int(input("请输入数字:"))
    array.append(temp)

BubbleSort(array)
for i in range(len(array)):
    print("{:d} ".format(array[i]),end="")

猜你喜欢

转载自blog.csdn.net/weixin_43699716/article/details/97984279