我们做一些游戏脚本软件时候,经常要用到这个算法,比如求解离自己身边最近的怪物优先攻击,就要用到这个算法,冒泡算法可以快速的把一组数据按照从大到小,或者从小到大的顺序进行快速排序.
冒泡算法的核心就是,从第一位开始把数据提取出来,跟余下的数据逐一进行比大或者小(看你是按照从大到小,还是从小到大顺序进行排),大或者小的数交换位置,第一位比较完毕后,再从二个位开始把数据提取出来,跟余下的数据进行比较,依次进行.
下面给出易语言源码
.版本 2
.支持库 spec
.子程序 子程序_按照从小到大排序
.局部变量 局_比较数组, , , "0"
.局部变量 i
.局部变量 j
.局部变量 局_临时, 整数型
局_比较数组 = { 12, 34, 73, 23, 733, 3456, -46, 11, 67, 35, 64 }
.计次循环首 (取数组成员数 (局_比较数组), i)
.变量循环首 (i + 1, 取数组成员数 (局_比较数组), 1, j)
.如果真 (局_比较数组 [i] > 局_比较数组 [j])
局_临时 = 局_比较数组 [i]
局_比较数组 [i] = 局_比较数组 [j]
局_比较数组 [j] = 局_临时
.如果真结束
.变量循环尾 ()
.计次循环尾 ()
调试输出 (局_比较数组)
易本身也有冒泡算法的函数,就是数组排序这个函数,这个代码就很简单了
.版本 2
.支持库 spec
.子程序 易语言_按照从小到大排序
.局部变量 局_比较数组, 整数型, , "0"
局_比较数组 = { 12, 34, 73, 23, 733, 3456, -46, 11, 67, 35, 64 }
数组排序 (局_比较数组, 真)
调试输出 (局_比较数组)