问题描述 问题:当需要将一组乱序的数据排序时应该如何解决? 示例:此程序每一次输入一组乱序的数据后,会输出一组排好顺序的从小到大(或从大到小)的数据。 输入:[64,34,25,12,22,11,90] 输出:[11,12,22,25,34,64,90] 或 输入:[64,34,25,12,22,11,90] 输出:[90,64,34,25,22,12,11] 解决方案 输入一组乱序的数据,要求将其输出为一组由从小到大(或从大到小)排列的数据: 原理:比较相邻两个变量但值,满足大于或小于的条件,交换两个变量的值。 例如:一组数据64,34,25,12,22,11,90(从小到大排序),标记的两个数字进行比较如果满足即会交换位置 条件:前者大于后者,满足就交换(从小到大排序) 第一次: 64,34,25,12,22,11,90//64>34,交换 34,64,25,12,22,11,90//64>25,交换 34,25,64,12,22,11,90//64>12交换 34,25,12,64,22,11,90//64>22,交换 34,25,12,22,64,11,90//64>11,交换 34,25,12,22,11,64,90//64<90,不交换 34,25,12,22,11,64,90//第一轮排序结束 第二次: 34,25,12,22,11,64,90//34>25,交换 25,34,12,22,11,64,90//34>12,交换 25,12,34,22,11,64,90//34>22,交换 25,12,22,34,11,64,90//34>11,交换 25,12,22,11,34,64,90//34<64,不交换 25,12,22,11,34,64,90//64<90,不交换 25,12,22,11,34,64,90//第二轮排序结果 ****每一次都会通过相邻比较得出一个最大值,以此类推,就能将此数据排序 代码清单-冒泡排序问题Python代码
结语 本文主要讲述用“冒泡排序”的算法来解决数据乱序的问题,这需要做到的是熟练掌握for循环及定义函数来解决此类问题,解决生活中需要将大量数据惊醒排序的问题。这类型给数字排序的问题就可以通过这种方法来解决,当然或许还有其它更好的方法,只是暂时就想到了这个,但相信会有人想出更好的解决方法,所以,要在今后的学习中根据所学的知识去拓展一些更加简洁和方便的解决方法。 实习编辑:李欣容 作者:陈文杰、邓斯丹、李俭 |
|