`

浅谈java中的选择排序法

阅读更多

 

­选择排序法          

        选择排序(Select Sort)算法的基本思想是:在待排序的无序数组中找出最小数(或最大数)并将它与序列中的第一个记录交换位置;然后从不包括第一个位置上的记录序列中再次选择最小数(或最大数)并将它与序列中的第二个记录交换位置;如此重复,直到序列中只剩下一个数为止。
        假定有n个数的序列,要求按递增的次序排序,则实现步骤为:

第一步:从n个数中找到最小数的下标,将最小数与第一个数交换位置,通过这一趟排序,第一个数位置就确定好了。

第二步:除去已经排序好的数外,在剩下的n-1个元素中再按步骤一的方法选出第二小的数,与未排序数中的第一个数交换位置。

第三步:重复步骤二,最后构成递增数列。

 

下面举个例题:给定你一个无序数组a[10],将其按递增排序。

 

package com.itttop.sort;

 

public class SelectSort {

 

    public static void main(String[] args) {

      

       int R[] = { 22, 15, 7, 35, 89, 13, 6, 12, 3, 9 };

 

       int i, j, temp, index, min;// index用于记录最小值的下标。

 

       // 下面为输出原来数列,用于比较。

 

       System.out.println("未排序前原数列为:\n");

 

       for (i = 0; i < R.length; i++)

 

           System.out.print("\t" + R[i]);

 

       // 下面为数列排序过程。

 

       for (i = 0; i < R.length-1; i++)

       {

           min = R[i];

 

           index = i;

 

           for (j = i + 1; j < R.length; j++)

           {

              if (min > R[j])

              {

                  min = R[j];

 

                  index = j;

              }

           }

 

           temp = R[i];

           R[i] = R[index];

           R[index] = temp;

 

       }

 

       System.out.println("\n"+"排序好的递增数列为:\n");

 

       for (int k = 0; k < R.length; k++)

           System.out.print("\t" + R[k]);

 

    }

}

 

 

测试效果如下:

 

未排序前原数列为:

 22  15  7  35  89  13  6  12  3  9
排序好的递增数列为:

 3  6  7  9  12  13  15  22  35  89 

分享到:
评论

相关推荐

    浅谈JAVA实现选择排序,插入排序,冒泡排序,以及两个有序数组的合并

    首先,选择排序是一种简单的排序算法。其主要思想是每次选择最小的元素,并将其放置在正确的位置。下面是JAVA实现选择排序的代码: ```java public static void selectsort(int array[]) { for (int i = 0; i ; i++...

    浅谈java!

    - **排序算法**:冒泡排序、选择排序、插入排序、快速排序等。 - **搜索算法**:二分查找、深度优先搜索、广度优先搜索等。 #### 三、J2EE企业级开发 完成了JavaSE的学习后,可以进一步探索J2EE方向,为将来从事...

    浅谈Java中的Set、List、Map的区别.docx

    Java 中的 Set、List、Map 的区别 Java 中的集合可以存储和操作数目不固定的一组数据。所有的 Java 集合都位于 java.util 包中!Java 集合只能存放引用类型的数据,不能存放基本数据类型。 Collection 接口是最...

    浅谈Java中常用数据结构的实现类Collection和M

    在Java编程语言中,数据结构是组织和存储数据的基本方式,它们为算法的高效执行提供了基础。本篇文章将深入探讨两个重要的数据结构实现类:Collection和Map,以及它们在Java中的应用。 首先,Collection是Java集合...

    浅谈JAVA集合框架及其应用.zip

    Java集合框架是Java编程语言中一个至关重要的组成部分,它为数据存储、管理和处理提供了丰富的类和接口。这个框架包括了数组、链表、队列、堆栈、映射等多种数据结构,极大地提高了开发效率和代码的可读性。在本文中...

    浅谈java中的TreeMap 排序与TreeSet 排序

    在Java编程语言中,`TreeMap` 和 `TreeSet` 是两种基于红黑树数据结构实现的集合类,它们都提供了自动排序的功能。本文将详细探讨 `TreeMap` 和 `TreeSet` 的排序机制以及如何自定义排序规则。 首先,`TreeMap` 是...

    浅谈对象数组或list排序及Collections排序原理

    `ComparableTimSort`是一个高效的排序算法,它基于Tim Peters的TimSort算法,这是一种稳定的排序算法,结合了归并排序和插入排序的特点。在排序过程中,`ComparableTimSort`会进行二分查找(binary sort)来确定元素...

    浅谈javascript实现八大排序

    排序算法,分为内部排序和外部排序。内部排序要使用内存,这里只探讨内部排序。 1,插入排序:直接插入排序和希尔排序 2,选择排序:简单选择排序和堆排序 3,交换排序:冒泡排序和快速排序 4,归并排序 5,基数排序...

    浅谈关于java程序员面试的一些事项

    选择题考察基本的Java知识,论述题要求你阐述对某一技术或概念的理解,而编程题则可能涉及设计模式的实现,如单例、工厂和代理模式,或是基础的排序算法。因此,扎实的Java基础知识和一定的编程实践能力是必不可少的...

    浅谈Android LruCache的缓存策略

    在Android开发中,缓存策略对于提升应用性能和用户体验至关重要,尤其是在处理大量数据或资源时。本文主要讨论了Android中的LruCache缓存策略,它是一种高效的内存管理机制,尤其适用于图片或者其他大对象的缓存。 ...

    浅谈高职“数据结构”课程的有效教学.pdf

    学习数据结构不仅是学习具体的队列、二叉树、排序等数据结构及相应算法,更重要的是学会如何将现实问题转化为计算机语言的表示,这是非常重要的逻辑思维能力的锻炼,也是程序员入门的基本条件。 然而,在高职院校...

    浅谈PHP链表数据结构(单链表)

    链表可以用于解决各种问题,如约瑟夫问题(Josephus Problem)、排序算法(如链表排序)、搜索问题(链表中查找特定元素),以及更复杂的数据结构如广义表。在PHP的底层实现,由于其基于C语言,内存管理遵循栈区、堆...

    菜鸟的自我修炼——阿里巴巴一道笔试题浅谈

    8. **算法与数据结构**:虽然Java笔试题不一定涉及复杂算法,但基础的排序、查找算法,以及链表、树等数据结构的运用是必要的。 9. **JVM原理**:理解JVM的工作原理,如内存模型、垃圾回收、类加载机制等,可以帮助...

    2020年百度、阿里、腾讯、字节跳动Android高频面试题解析.pdf

    最后,常见面试算法题汇总部分,可能会包含排序算法(如冒泡、选择、插入、快速、归并排序)、查找算法(如二分查找)、链表操作、栈与队列的应用、图和树结构的题目,以及动态规划、贪心策略等复杂算法问题。...

    jmeter 实现oauth1.0授权认证

    在这个预处理器中,我们将编写Java脚本来生成OAuth签名,这是OAuth 1.0认证过程的关键部分。 3. **Java脚本实现OAuth签名**: 参照提供的代码,可以看到以下关键组件: - 定义常量:MAC_NAME(HMAC-SHA256算法...

    冲刺BAT练习题

    - 可以使用排序算法(如快速排序)后直接获取中位数。 - **内存不足**: - 使用外部排序技术,如合并排序。 - 或者采用近似算法如Reservoir Sampling来估算中位数。 7. **Java垃圾回收机制** - Java中的垃圾...

    INTERNET自学通(第二版)

    10. **云计算与大数据**:浅谈云计算服务,如阿里云、腾讯云等,以及大数据的应用,帮助读者理解科技发展的趋势。 11. **网络编程**:对于有一定基础的读者,可能会涉及HTML、CSS、JavaScript等基础网页开发语言,...

Global site tag (gtag.js) - Google Analytics