`
Java_Fan
  • 浏览: 82094 次
  • 性别: 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编程的初学者还是有经验的程序员,该资源都将为您提供有价值的指导和支持,...

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

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

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

    在Java实现中,`BaseBoxChoose.java`可能包含了装箱算法的基本策略或基类,定义了装箱选择的接口和通用方法。`Slaves.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

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

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

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

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

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

    用蛮力法实现选择排序,冒泡排序程序;用减治法实现插入排序;分治法应用-快排,合并排序,0-1背包问题;Prim算法求最小生成树。伪代码以及java代码实现

    在实验中,我们使用 Java 语言实现了选择排序、冒泡排序和插入排序的算法,并对其进行了测试。实验结果表明,蛮力法和减治法可以有效地解决排序问题,而分治法也可以用于解决复杂的算法问题。 五、结论 蛮力法、减...

    Java各种排序算法(含代码)

    在编程领域,排序算法是数据结构与算法学习中的基础部分,尤其在Java中,了解和...例如,`Java各种排序算法.htm`可能包含了每种排序算法的详细解释、伪代码和实际的Java实现代码,帮助读者更好地理解和应用这些算法。

    详解Java常用排序算法-插入排序

    Java排序算法 - 插入排序 插入排序(Insertion Sort)是一种简单的排序算法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增 1 的有序表。该算法的实现非常简单,但其时间复杂度...

    java 各类算法实现代码

    在Java中实现这些算法,可以帮助开发者更好地理解和应用它们。以下将详细阐述一些常见的Java算法及其重要性。 1. 排序算法 - 冒泡排序:最简单的排序方法,适用于小规模数据或教学演示。 - 选择排序:通过交换...

    [Java算法-排序练习]小范围排序.java

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

Global site tag (gtag.js) - Google Analytics