`
Java_Fan
  • 浏览: 83220 次
  • 性别: 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)

    例如,舞步序列可能需要通过某种数据结构存储和检索,而玩家成绩的排序则需要排序算法。 8. **游戏逻辑**: 编写劲舞团的游戏逻辑,包括舞步匹配、分数计算、等级晋升等,这部分需要深入理解游戏规则,并将其转化...

    Java手游源码 炫舞派对源码(解锁版)eclipse可以打开 .zip

    4. **图形和动画**:游戏中的舞蹈动作和界面元素的展示涉及到了图形和动画的设计与实现,可能利用了Java的AWT或Swing库,或者更现代的Android图形API,如OpenGL ES。 5. **音频处理**:音乐和音效的播放需要特定的...

    recursividad_java_13_aaaa_

    描述中提到的"RECURSIVIDAD EN JAVA ALGORITMOS"进一步强调了我们将深入理解如何在Java中实现递归算法。递归算法在数据结构(如树和图)、排序(如快速排序和归并排序)以及搜索问题(如深度优先搜索)等领域有着...

    一個用JAVA寫的劲舞团遊戲

    5. **数据结构与算法**: 存储和操作舞步序列、用户分数、排行榜等数据时,合理选择数据结构(如链表、数组、树等)和算法(如排序、查找)至关重要。 6. **网络编程**: 如果游戏包含多人在线功能,那么TCP或UDP网络...

    j2me期末项目 纯java编写 跳舞机 运用了几乎所学知识

    4. 数据结构与算法:存储和处理歌曲的节奏信息,可能使用数组、链表等数据结构,以及查找、排序等算法。 5. 图形动画:创建动态的跳舞人物和舞蹈动作,运用Java的Graphics类进行绘图,实现帧动画效果。 6. 时间...

    j用ava模拟的劲舞团

    2. 继承与接口:为了保持代码的可扩展性和模块化,可能会采用继承来构建不同类型的玩家或舞蹈步子,同时利用接口定义特定的行为规范,如“可播放”或“可执行舞蹈”。 3. 异常处理:在游戏中,可能会遇到各种异常...

    各大IT公司的面试笔试题

    例如,YAHOO可能会询问如何优化搜索算法,而谷歌可能会考察排序算法的实现。 2. 计算机网络:了解TCP/IP协议、HTTP、HTTPS、DNS等,对于腾讯和阿里巴巴的笔试至关重要,因为这些公司涉及到大量的网络通信。 3. ...

Global site tag (gtag.js) - Google Analytics