美文网首页
冒泡排序

冒泡排序

作者: 道系逐梦者 | 来源:发表于2018-11-27 21:58 被阅读0次

原理:

从第一个数开始,对两个相邻的数进行比较,按照升序(降序)排列,如果第一个数大(小),则将第一个数和第二个数交换位置,然后用第二个数和第三个数进行比较,如果第二个数大(小),则将第二个数和第三个数交换位置,以此类推。如:
16422(按照升序排列)
1 < 6,所以不用交换位置,结果为:16422
6 > 4,所以将6和4交换位置,结果为:14622
6 > 2,所以将6和2交换位置,结果为:14262
6 > 2,所以将6和2交换位置,结果为:14226
1 < 4,所以不用交换位置,结果为:14226
4 > 2,所以将4和2交换位置,结果为:12426
4 > 2,所以将4和2交换位置,结果为:12246
4 < 6,所以将4和2交换位置,结果为:12246
1 < 2,所以不用交换位置,结果为:12246
2 = 2,所以不用交换位置,结果为:12246
2 < 4,所以不用交换位置,结果为:12246
4 < 6,所以不用交换位置,结果为:12246
以上就是冒泡排序的步骤,下面用python来实现冒泡排序:
value = list(input("请输入要排序的值:"))  #输入一组值,用list()函数将这组值转换为列表
lenth = len(value)  #用len()函数得出value数组的长度,并存入变量
while lenth > 0:  #当lenth不满足条件,即lenth<=o时,循环结束
    for i in range(0, lenth-1):  #i为这组数的下标,即第几个数,因为程序是从0开始计数,且在进行比较的时候不与自己比较,所以应该是从第0个数开始比较,到第lenth-1个结束
        if value[i] > value[i+1]:  #若要进行降序排序,只需将 “>” 改成 “<”
            value[i], value[i+1] = value[i+1], value[i]  #如果符合条件,则将两个值进行调换
    lenth -= 1  #计时器,循环一次减一
#while语句循环一次,则表示排序从头到尾已经比较了一次,有lenth个值,所以从头到尾只需要比较lenth次
print(value)  #打印冒泡排序的结果
当我们随机输入一组数或一组字母 ,其结果为:
请输入要排序的值:4896432546
['2', '3', '4', '4', '4', '5', '6', '6', '8', '9']
请输入要排序的值:agdsfaidsghjk
['a', 'a', 'd', 'd', 'f', 'g', 'g', 'h', 'i', 'j', 'k', 's', 's']

相关文章

网友评论

      本文标题:冒泡排序

      本文链接:https://www.haomeiwen.com/subject/iyznqqtx.html