时间:2021-05-20
选择排序概念
选择排序也是一种交换排序算法,和冒泡排序有一定的相似度,因此个人认为选择排序可以视为冒泡排序的一种改进算法。它的思路是这样的:
设现在要给数组arr[]排序,它有n个元素。
1对第一个元素(Java中,下标为0)和第二个元素进行比较,如果前者大于后者,那么它一定不是最小的,但是我们并不像冒泡排序一样急着交换。我们可以设置一个临时变量a,存储这个目前最小的元素的下标。然后我们把这个目前最小的元素继续和第三个元素做比较,如果它仍不是最小的,那么,我们再修改a的值。如此直到和最后一个元素比较完,可以肯定a存储的一定是最小的元素的下标。
2.如果a的值不为0(初始值,即第一个元素的下标),交换下标为a和0的两个元素。
3.重复上述过程,这次从下标为1的元素开始比较,因为下标为0的位置已经放好了最小的元素了。
4.如此直到只剩下最后一个元素,可以肯定这个元素就是最大的了。
5.排序完成。
很显然,这个算法也需要n-1轮排序。
需要注意的是,以上阐述的只是每次找最小值的办法。实际上也可以每次找最大值,不过那就需要每次放到数组尾巴上了。
Java实现代码:
SelectArray.java
测试代码:
package ch02;public class TestSelectArray { public static void main(String[] args) { SelectArray sArr = new SelectArray(); sArr.insert(89); sArr.insert(54); sArr.insert(667); sArr.insert(7); sArr.insert(12); sArr.insert(43); sArr.insert(12); sArr.display(); sArr.selectSort(); sArr.display(); }}结果:
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了java排序高级之选择排序实现方法。分享给大家供大家参考。具体如下:选择排序(Selectionsort)是一种简单直观的排序算法。它的工作原理如
java算法之快速排序实现代码摘要:常用算法之一的快速排序算法的java实现原理:选择一个基准元素,通常选择第一个元素或者最后一个元素,通过一趟扫描,将待排序列
一、概述: 本文给出常见的几种排序算法的原理以及Java实现,包括常见的简单排序和排序算法,以及其他常用的算法知识。简单排序:冒泡排序、选择排序、插入排序排序
本文实例讲述了java数据结构排序算法之树形选择排序。分享给大家供大家参考,具体如下:这里我们就来说说选择类排序之一的排序:树形选择排序在简单选择排序中,每次的
本文实例讲述了java实现的冒泡排序算法。分享给大家供大家参考,具体如下:publicclassPaoPaixu{publicstaticvoidsort(in