array = { 153, 245, 421, 352, 154, 12, 352, 62, 54, 652, 36, 15, 423, 57 } 数组排序_选秀算法 (array ) 调试输出 (array ) 调试输出 (取重复文本 (30, “==”)) array = { 153, 245, 421, 352, 154, 12, 352, 62, 54, 652, 36, 15, 423, 57 } 数组排序_冒泡算法 (array ) 调试输出 (array ) 返回 (0 ) 计次循环首 (取数组成员数 (array ) - 1, i )变量循环首 (i, 取数组成员数 (array ) - 1, 1, n )如果真 (array [i ] > array [n + 1 ])交换变量 (array [i ], array [n + 1 ])变量循环尾 ()调试输出 (i, array )计次循环尾 ()计次循环首 (取数组成员数 (array ) - 1, i )计次循环首 (取数组成员数 (array ) - i, j )如果真 (array [j ] > array [j + 1 ]) 交换变量 (array [j ], array [j + 1 ])计次循环尾 ()调试输出 (i, array )计次循环尾 ()
与常用冒泡算法的不同点在于:
冒泡算法是每次循环,将两个方向的极值逐步向数组两端移动
选秀算法是每次循环,将要取的极值向数组前方指定位置置换,由于取值行为类似舞台选秀,故名选秀算法
与常用冒泡算法相比,速度没差别
唯一优势在于特定场景扩展应用,例如:
要从数组 { 153, 245, 421, 352, 154, 12, 352, 62, 54, 652, 36, 15, 423, 57 } 中取出最小的3个数来用
那么可使用类似的变造排序代码:
变量名 | 类 型 | 静态 | 数组 | 备 注 | array | 整数型 | | 0 | 接收数组 | 整数型 | | 0 |
array = { 153, 245, 421, 352, 154, 12, 352, 62, 54, 652, 36, 15, 423, 57 } 数组排序_选取指定数量值 (array, 3, 接收数组 ) 调试输出 (接收数组 ) 返回 (0 ) |
数组排序_选取指定数量值 | | | |
参数数组 | 整数型 | | | | 数量 | 整数型 | | | | 接收数组 | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | array | 整数型 | | 0 | i | 整数型 | | | n | 整数型 | | |
array = 参数数组 计次循环首 (数量, i )变量循环首 (i, 取数组成员数 (array ) - 1, 1, n )如果真 (array [i ] > array [n + 1 ])交换变量 (array [i ], array [n + 1 ])变量循环尾 ()加入成员 (接收数组, array [i ])计次循环尾 ()
来自群组: 热心网友 |