• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

twilight0966

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

排序算法

目录
  • 1. 选择排序
  • 2. 冒泡排序
  • 3. 插入排序
  • 4. 快速排序

给定数组:[12, 23, 8, 15, 33, 24, 77, 55]

1. 选择排序

选择排序的思路是从未排序的部分中选择最小的元素,然后将其与未排序部分的第一个元素交换。

选择最小值为8,与第一个元素12交换,得到:[8, 23, 12, 15, 33, 24, 77, 55]

2. 冒泡排序

冒泡排序的思路是比较相邻的元素,如果顺序不对则交换。
(1)比较第1和第2个元素,不需要交换。
(2)比较第2和第3个元素,需要交换,得到:[12, 8, 23, 15, 33, 24, 77, 55]
(3)比较第3和第4个元素,不需要交换。
(4)比较第4和第5个元素,不需要交换。
(5)比较第5和第6个元素,不需要交换。
(6)比较第6和第7个元素,不需要交换。
(7)比较第7和第8个元素,不需要交换。

3. 插入排序

插入排序的思路是将一个元素插入到已排序好的部分中。
(1)将第2个元素23插入到已排序部分(第1个元素12)之前,
得到:[12, 23, 8, 15, 33, 24, 77, 55]
(2)将第3个元素8插入到已排序部分(前两个元素)之前,
得到:[8, 12, 23, 15, 33, 24, 77, 55]
(3)将第4个元素15插入到已排序部分(前三个元素)之前,
得到:[8, 12, 15, 23, 33, 24, 77, 55]
(4)将第5个元素33插入到已排序部分(前四个元素)之前,
得到:[8, 12, 15, 23, 33, 24, 77, 55]
(5)将第6个元素24插入到已排序部分(前五个元素)之前,
得到:[8, 12, 15, 23, 24, 33, 77, 55]
(6)将第7个元素77插入到已排序部分(前六个元素)之前,
得到:[8, 12, 15, 23, 24, 33, 77, 55]
(7)将第8个元素55插入到已排序部分(前七个元素)之前,
得到:[8, 12, 15, 23, 24, 33, 55, 77]

4. 快速排序

快速排序的思路是选择一个基准元素,将小于基准放在左侧,大于基准放在右侧。
(1)选择基准为第一个元素12。
(2)从右向左找到比基准小的元素,将其放在基准的位置,
得到:[8, 23, 12, 15, 33, 24, 77, 55]
(3)从左向右找到比基准大的元素,将其放在之前右移的位置,
得到:[8, 23, 12, 15, 33, 24, 77, 55]
(4)将基准放在正确的位置,
得到:[8, 12, 23, 15, 33, 24, 77, 55]

posted on 2023-11-05 21:47  20231301周子昂  阅读(28)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3