发布日期:2025-09-02 浏览次数:
开元棋牌,开元棋牌APP下载,开元棋牌官方网站/开元棋牌[永久网址:363050.com]专注于线上棋牌游戏开发与运营。开元棋牌提供多种经典和创新的棋牌游戏,包括电子游戏、捕鱼、欧洲杯投注、斗地主、麻将、德州扑克等。开元,开元棋牌,开元体育,开元棋牌入口,开元APP下载,开元棋牌官网入口,开元棋牌官方网站,开元官方网站,开元棋牌APP下载开元棋牌APP下载,以高质量的游戏画面和流畅的操作为用户带来优越的游戏感受。
冒 泡 排序 ( BubbleSort) 的 基本 概 念是 : 依 次比 较相 邻 的 两 个数, 将 小 数 放在 前面, 大 数放在后 面。 即 在 第 一 趟: 首 先 比 较第 1 个和 第 2 个数, 将 小 数放前, 大 数 放后 。 然 后 比 较 第 2个数和 第 3 个数, 将 小 数放前, 大 数放后 , 如 此 继续, 直至 比 较最后 两 个数, 将 小数放前, 大 数放 后 。 至 此 第 一趟结 束 , 将 最大 的 数放到 了 最 后 。 在 第 二趟: 仍 从 第 一对数开始 比 较( 因 为 可能 由 于第 2 个数 和 第 3 个数的 交换 , 使得第 1 个数不 再小 于 第 2 个数) , 将 小 数放前, 大 数放后 , 一 直比 较到 倒 数第 ...
冒 泡 排序 ( BubbleSort) 的 基本 概 念是 : 依 次比 较相 邻 的 两 个数, 将 小 数 放在 前面, 大 数放在后 面。 即 在 第 一 趟: 首 先 比 较第 1 个和 第 2 个数, 将 小 数放前, 大 数 放后 。 然 后 比 较 第 2个数和 第 3 个数, 将 小 数放前, 大 数放后 , 如 此 继续, 直至 比 较最后 两 个数, 将 小数放前, 大 数放 后 。 至 此 第 一趟结 束 , 将 最大 的 数放到 了 最 后 。 在 第 二趟: 仍 从 第 一对数开始 比 较( 因 为 可能 由 于第 2 个数 和 第 3 个数的 交换 , 使得第 1 个数不 再小 于 第 2 个数) , 将 小 数放前, 大 数放后 , 一 直比 较到 倒 数第 二 个数( 倒 数第 一 的 位置上已 经是最 大 的 ) , 第 二 趟结 束, 在 倒 数第 二的 位置 上得到 一个新的 最 大 数( 其实 在 整个数列 中 是 第 二 大的 数) 。 如 此 下 去 , 重复以 上过程, 直至 最 终完 成 排 序 。 由 于 在 排 序 过程中 总 是 小 数往前放,大 数往后 放, 相 当 于气 泡 往上升 , 所以 称 作冒 泡 排 序 。 用 二 重循环 实 现 , 外 循环 变量设 为 i, 内 循 环 变量设为 j。 外 循环重复 9 次, 内 循环依 次重复 9, 8, , 1 次 。 每次进行比 较的 两 个元 素都 是 与 内 循环 j 有关 的 , 它 们可以 分别 用 a[j]和 a[j+1 ]标识 , i 的 值依 次为 1 ,2,,9, 对于 每一 个 i,j 的 值依 次为1 ,2,1 0-i。 在 许多 程序 设 计 中 , 我 们 需 要将 一 个数列 进行 排 序 , 以 方便 统 计, 而 冒 泡 排序 一 直由 于 其简 洁的 思 想 方法而 倍受青 睐 。 设 想 被排 序 的 数 组 R[1 ..N]垂 直竖 立 , 将每个数据 元 素看作 有重量的 气 泡 , 根据 轻气泡 不 能 在 重气 泡 之 下 的 原 则 , 从下 往上 扫 描 数组 R, 凡 扫 描 到 违反 本 原 则 的 轻气 泡 ,就 使其向 上”漂浮”, 如 此 反 复进行, 直至 最后 任何 两个气 泡 都是 轻者 在 上, 重者 在下 为 止。 若 记 录序 列 的 初 始 状态 为 ”正 序 ”, 则 冒 泡 排 序 过程只 需 进行一 趟排序 , 在 排序 过程中 只 需 进行 n-1 次比 较, 且不移 动 记 录 ; 反 之 , 若 记 录 序 列 的 初 始 状 态 为 ”逆序 ”,则 需 进行 n(n-1 ) /2 次 比 较和 记 录 移 动 。 因 此 冒 泡 排序 总 的 时间 复杂 度 为 O(n*n)。 冒 泡 排序 法存在 的 不足及 改进方 法: 第 一 , 在 排 序 过 程中 , 执 行完 最 后 的 排 序 后 , 虽 然 数据 已 全 部 排 序 完 备 , 但程序 无法判 断是 否 完 成 排 序 , 为 了 解决这一 不 足, 可 设 置 一个标志 单元 flag, 将 其设 置 为OFF, 表 示被排序 的 表 示是 一个 无 序 的 表 。 在 每一 排序 开始 时, 检查 此 标 志 , 若 此标志 为 0, 则 结 束 排 序 ; 否 则 进行 排 序 ; 第 二 , 当 排 序 的 数据 比 较多 时排 序 的 时间 会明 显 延 长。 改进 方法: 快 速排 序 : 具 体做法: 任意 选取 某 一记 录 ( 通常 取 第 一 个记 录 ) , 比 较其关 键字 与 所有记 录的 关 键字 , 并将 关 键字 比 它 小 的 记 录全 部 放在 它 的 前面, 将比 它 大 的 记 录均 存放 在它 的 后面, 这样 , 经过 一 次排 序 之 后 , 可将 所有记 录 以 该 记 录 所在 的 分界点 分为 两部 分,然 后 分别 对这两 部 分进行快 速排 序 , 直至 排序 完 局 部 冒 泡 排 序 算 法对 冒 泡 排 序 的 改进: 在 冒 泡 排 序 中 , 一 趟扫 描 有可能 无 数据 交换, 也 有可能 有一 次或 多 次数据 交换, 在传 统 的 冒 泡 排 序 算 法及 近年来的 一 些 改进的 算 法中 , 只 记 录 一 趟扫 描 有无 数据 交换的 信息 , 对数据 交换发生的 位置 信息 则 不 予 处 理。 为 了 充 分 利 用 这一 信息 , 可以 在一 趟全局 扫 描 中 , 对每一 反 序 数 据 对进行局 部 冒 泡 排序 处理, 称 之 为 局 部 冒 泡 排 序 。