在算法中,有一个功能经常需要,就是排序,从小到大排序,或从大到小排序。 一.冒泡排序 1.需求:把一个字符串或数组的内容从小到大排序; 2.模拟:按照冒泡模拟: 假设数组有 3, 2,7,4,1 要从小到大排序 冒泡过程1: 3和2比较,3大,因此1.1次互换位置:2,3,7,4,1 3和7比较,7大,因此1.2次不换位置:2,3,7,4,1 7和4比较,7大,因此1.3次互换位置:2,3,4,7,1 7和1比较,7大,因此1.4次互换位置:2,3,4,1,7 第一轮冒泡,最大的7已经冒到最上面 冒泡过程2: 2和3比较:3大,因此2.1 不换位置,2,3,4,1,7 3和4比较,4大,因此2.2 不换位置,2,3,4,1,7 4和1比较,4大,因此2.3 互换位置,2,3,1,4,7 4和7比较,7大,因此2.4 不换位置 第二轮冒泡,最大4已经冒出来 冒泡过程3: 2和3比较, 3大,因此3.1 不换位置,2,3,1,4,7 3和1比较, 3大,因此3.2 互换位置 2,1,3,4,7 3和4比较,4大,因此3.3 不换位置 4和7比较,7大,因此3.4不换位置 冒泡过程4: 2和1比较,2大,因此4.1换位置,1,2,3,4,7 2和3比较,3大,... 3和4比较,4大... 4和7比较,7大 3.抽象: 把上面过程抽象,则有2个循环,都是从头到尾循环 i=0-5; 外围循环, 循环次数为最大字符数; j=1-5; 内部循环,只要str[j]>str[j+1], 就swap; 注意:循环次数为j+1<最大字符长度; 声名:以上内容为 七里稻田 原创 如果需要C语言全课程, 可以留言/或私信。 将提供C语言全课程,可以免费体验,或支付9.9元,即可购买课程,获得课程所有程序源代码。并提供在线疑问解决3个月。 |
|
来自: 好汉勃士 > 《Java的基本概述》