`
Java_Fan
  • 浏览: 83242 次
  • 性别: Icon_minigender_1
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

结合舞蹈更易理解的算法--选择排序算法[java代码]

 
阅读更多

选择排序舞蹈视频:http://t.cn/hros6e

java代码实现:

/**
 * 选择排序
 * @author hsy
 *
 */
public class SelectSort
{
    private long[] a;
    private int nElems;
    
    public SelectSort( int max)
    {
        super();
        this.a = new long[max];
        nElems = 0;
    }
    
    /**
     * 向数组中插入数据
     * @param value
     */
    public void insert(long value){
        a[nElems] = value;
        nElems++;
    }
    
    /**
     * 打印数组
     *
     */
    public void display(){
        for(int i=0;i<nElems;i++){
            System.out.print(a[i]+",");
        }
        System.out.println("");
    }
    
    /**
     * 排序
     *
     */
    public void selectSort(){
        int out;
        int in;
        int min;
        for(out=0;out<nElems;out++){
            min = out;
            for(in=0;in<out;in++){
                if(a[in]>a[min]){
                    min = in;
                }
                swap(out,min);
            }
        }
    }
    
    /**
     * 大小换位
     * @param index1
     * @param index2
     */
    private void swap(int index1,int index2){
        long temp = a[index1];
        a[index1] = a[index2];
        a[index2] = temp;
    }
    
    public static void main(String[] args){
        int max = 100;
        SelectSort arr = new SelectSort(max);
        
        arr.insert(10);
        arr.insert(5);
        arr.insert(45);
        arr.insert(8);
        arr.insert(34);
        arr.insert(78);
        arr.insert(22);
        arr.insert(68);
        arr.insert(82);
        arr.insert(53);
        arr.insert(7);
        arr.insert(99);
        arr.insert(57);
        arr.insert(72);
        
        arr.display();
        long start = System.currentTimeMillis();
        arr.selectSort();
        long end = System.currentTimeMillis();
        System.out.println("排序耗时:"+(end-start));
        arr.display();
    }
}

控制台打印:

10,5,45,8,34,78,22,68,82,53,7,99,57,72,
排序耗时:0
5,7,8,10,22,34,45,53,57,68,72,78,82,99,

分享到:
评论

相关推荐

    [Java算法-排序]选择排序.java

    该资源包括实用练习,让读者可以练习在Java中实现选择排序,并提供解决方案以帮助读者检查自己的工作并深入理解所学内容。 无论您是Java编程的初学者还是有经验的程序员,该资源都将为您提供有价值的指导和支持,...

    详解Java常用排序算法-选择排序

    详解Java常用排序算法-选择排序 选择排序(Selection Sort)是一种简单的排序算法,它的基本思想是每次从待排序的元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的元素排完。 选择...

    二维矩形装箱算法--二叉树--java实现

    在Java实现中,`BaseBoxChoose.java`可能包含了装箱算法的基本策略或基类,定义了装箱选择的接口和通用方法。`Slaves.java`可能是处理并行计算的部分,利用多线程并行处理多个箱子的装车问题,提高算法执行效率。`...

    [Java算法-排序]-堆排序.java

    该资源包括实用练习,让读者可以练习在Java中实现堆排序,并提供解决方案以帮助读者检查自己的工作并深入理解所学内容。 无论您是Java编程的初学者还是有经验的程序员,该资源都将为您提供有价值的指导和支持,帮助...

    [Java算法-排序]-插入排序.java

    该资源包括实用练习,让读者可以练习在Java中实现插入排序,并提供解决方案以帮助读者检查自己的工作并深入理解所学内容。 无论您是Java编程的初学者还是有经验的程序员,该资源都将为您提供有价值的指导和支持,...

    java排序算法 - 附有源代码

    在提供的Java代码中,可以看到对选择排序和冒泡排序的实现。选择排序的`sortSelection`方法通过三重循环来实现,而冒泡排序的`sortBubble`方法则是通过两重循环来完成。这两个方法都嵌套了一个百万次的循环,可能是...

    [Java算法-排序练习]计数排序.java

    该资源包括实用练习,让读者可以练习在Java中实现计数排序,并提供解决方案以帮助读者检查自己的工作并深入理解所学内容。 无论您是Java编程的初学者还是有经验的程序员,该资源都将为您提供有价值的指导和支持,...

    [Java算法-排序练习]基数排序.java

    该资源包括实用练习,让读者可以练习在Java中实现基数排序,并提供解决方案以帮助读者检查自己的工作并深入理解所学内容。 无论您是Java编程的初学者还是有经验的程序员,该资源都将为您提供有价值的指导和支持,...

    java排序算法

    ### Java排序算法详解 在Java编程中,排序算法是数据结构与算法中不可或缺的一部分,它不仅能够帮助我们理解和处理数据,还能提升...理解每种排序算法的特点和适用范围,有助于我们在实际开发过程中做出更好的选择。

    [Java算法-排序练习]三色排序判断.java

    该资源包括实用练习,让读者可以练习在Java中实现三色排序判断,并提供解决方案以帮助读者检查自己的工作并深入理解所学内容。 无论您是Java编程的初学者还是有经验的程序员,该资源都将为您提供有价值的指导和支持...

    最快的排序算法 javahash实现-Java-哈希算法-最快的实现,排序算法数据结构

    Java哈希算法排序算法数据结构知识点总结 以下是关于Java哈希算法排序算法数据结构的知识点总结: 1. 哈希算法的速度问题:在讨论哈希算法的速度问题时,需要考虑到哈希函数的选择和实现方式。在大多数情况下,...

    Java各种排序算法代码.zip

    Java是一种广泛使用的编程语言,...这些Java源代码可以作为学习和理解排序算法的实例,也可以作为代码库供开发者在项目中参考和使用。通过分析和比较这些算法,可以提高编程技巧,更好地理解数据结构和算法的重要性。

    经典排序算法源代码-插入排序-选择排序-冒泡排序

    通过阅读和实践这些代码,你可以深入理解排序算法的内部机制,为进一步学习更复杂的排序算法如快速排序、归并排序等奠定基础。同时,这些基础知识对于提升编程能力,优化数据处理效率,解决实际问题都有着重要作用。

    各种排序算法比较(java实现)

    理解和熟练掌握这些排序算法,不仅可以提高编程能力,还能在解决实际问题时选择最适合的排序方法,从而优化程序性能。在实际开发中,结合数据结构和算法,可以有效地处理大量数据,提升软件系统的效率。

    图解算法小册-Java版

    - **理论与实践相结合**:先理解算法的基本原理,再通过实践加深印象。 - **独立思考与动手实践**:在掌握了算法原理的基础上,尝试自己编写代码,并与书中的示例进行比较,发现问题并改进。 - **参与讨论和交流**:...

    java代码-使用java解决java排序之-快速排序的问题的源代码

    java代码-使用java解决java排序之-快速排序的问题的源代码 ——学习参考资料:仅用于个人学习使用!

    [Java算法-排序]希尔排序.java

    该资源包括实用练习,让读者可以练习在Java中实现希尔排序,并提供解决方案以帮助读者检查自己的工作并深入理解所学内容。 无论您是Java编程的初学者还是有经验的程序员,该资源都将为您提供有价值的指导和支持,...

    [Java算法-排序]冒泡排序.java

    该资源包括实用练习,让读者可以练习在Java中实现冒泡排序,并提供解决方案以帮助读者检查自己的工作并深入理解所学内容。 无论您是Java编程的初学者还是有经验的程序员,该资源都将为您提供有价值的指导和支持,...

    [Java算法-排序]快速排序.java

    该资源包括实用练习,让读者可以练习在Java中实现快速排序,并提供解决方案以帮助读者检查自己的工作并深入理解所学内容。 无论您是Java编程的初学者还是有经验的程序员,该资源都将为您提供有价值的指导和支持,...

    [Java算法-排序]归并排序.java

    该资源包括实用练习,让读者可以练习在Java中实现归并排序,并提供解决方案以帮助读者检查自己的工作并深入理解所学内容。 无论您是Java编程的初学者还是有经验的程序员,该资源都将为您提供有价值的指导和支持,...

Global site tag (gtag.js) - Google Analytics