java直接选择排序_基于Java语言实现的直接选择排序算法

2011 年10 月 内 蒙 古 科 技 与 经 济 O ctober 2011  第19 期 总第245 期 InnerM ongolia Science Technology & Economy No. 19 TotalNo. 245 基于Java 语言实现的直接选择排序算法Ξ王素苹 (内蒙古财经学院职业学院 计算机系, 内蒙古 呼和浩特 010000)   摘 要: 介绍了常用的排序算法, 详细阐述了直接选择排序算法, 最后给出基于Java 语言实现的直接选择排序算法。 关键词: 排序; 直接选择排序; Java 语言   中图分类号: TP312  文献标识码:A   文章编号: 1007—6921 (2011) 19—0066—02 1 排序的基本概念 1. 1 什么是排序? 排序就是把一组记录按照其中的某个或某些关键字的大小递增或递减排列起来的操作。在排序过程中通常进行两种操作: ①比较两个关键字的大小; ②把记录从一个位置移动到另外一个位置。 1. 2 排序算法的分类 排序算法按照是否涉及数据的内外存交换分为: 内排序算法和外排序算法。内排序算法是待排序的记录个数比较少, 整个排序过程中所有的记录都可以直接存放在内存中。外排序算法是待排序的记录数量很大, 内存无法容纳所有记录, 排序过程中还需要访问外存[1]。笔者介绍的直接选择排序算法属于内排序算法。详细的排序算法分类见图1。 图1 排序算法分类图 2 直接选择排序算法 2. 1 直接选择排序的基本思想 直接选择排序属于选择排序的一种。假设记录为一组数据, 将数据进行升序即从小到大的顺序排列, 下面介绍直接选择排序算法的基本思想。降序排列与此相同。①首先在待排序的数中选择最小的数, 将它放在第一个位置, 也就是将该数与第一个数进行位置交换; ②然后从剩下的数中选择最小的数放 在第二个位置; 也就是将该数与第二个数进行位置交换; ③如此继续⋯⋯; ④直到最后从剩下的两个数中选择最小的数放在倒数第二个位置, 最后一个数放在最后一个位置, 完成排序。 2. 2 如何找出一组数中的最小值? ——“打擂台” 法 在直接选择排序算法中有一项工作就是找出一组数中的最小值(最大值) , 如何操作可以类比现实世界的“打擂台”。因此把这种找出一组数据中的最小值(最大值) 算法形象地称为“打擂台”法。假设要找出8 个数中的最小数, 步骤如下: ①先将第一个数送上“擂台” ; ②其余7 个数依次和“擂主”进行比较, 比第一个数小的就站在“擂台”上; ③最终站在台上的就是8 个数中的最小值。 2. 3 直接选择排序算法的应用 给出一组数据45, 34, 78, 12, 34, 32, 29, 64, 用直接选择排序算法进行升序排列。步骤如下: 第一步: 用“打擂台”法找出原始序列中的最小数即 12, 放在第一个位置, 也就是将 12 与第一个位置上的45 进行位置交换; 第二步: 继续用“打擂台”法在剩余的数中找出最小的数即 29, 放在第二个位置, 也就是将 29 与第二个位置上的34 进行位置交换; 第三步: 如此继续⋯⋯, 最终完成排序。具体过程见图2。 图2 直接选择排序算法的应用 ·66·Ξ收稿日期: 2011- 07- 30  王素苹 · 基于Java 语言实现的直接选择排序算法 2011 年第19 期 图3 直接选择排序流程            图4 运行结果 2. 4 直接选择排序算法分析 一个排序算法的性能可以从稳定性、时间复杂度和空间复杂度3 个方面来综合考虑: ①稳定性。所有相等的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值