A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 夏日蓝雪 中级黑马   /  2014-6-2 22:11  /  1284 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 夏日蓝雪 于 2014-6-5 10:10 编辑

两种常见排序:选择和冒泡,你一般怎么实现的呢?

public class Practise {
        public static void main(String[] args)
        {
        int[] a=new int[]{3,9,7,1,4,2,0,8,5};
        //xuanze(a);
        maopao(a);
        for(int i=0;i<a.length ;i++)
                System.out.print(a+" ");
        }
        static void xuanze(int[] a)//选择排序(选择位置,找合适的数)
        {
                for(int i=0;i<a.length-1;i++)
                        for(int j=i+1;j<a.length;j++)
                        {
                                if(a>a[j])
                                {
                                        int temp=a;
                                        a=a[j];
                                        a[j]=temp;
                                }
                        }
        }
        static void maopao(int[] a)//冒泡排序(相邻比较,最值冒出)
        {
                for(int i=0;i<a.length-1;i++)
                        for(int j=0;j<a.length-i-1;j++)
                        {
                                if(a[j]>a[j+1])
                                {
                                        int temp=a[j];
                                        a[j]=a[j+1];
                                        a[j+1]=temp;        
                                }
                        }
        }
}

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

6 个回复

倒序浏览
简单选择排序  
(1)基本思想:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;  
然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。  
(2)实例:  
(3)用java实现  
[java] view plaincopy  
public class selectSort {   
    public selectSort(){   
        int a[]={1,54,6,3,78,34,12,45};   
        int position=0;   
        for(int i=0;i<a.length;i++){   
               
            int j=i+1;   
            position=i;   
            int temp=a[i];   
            for(;j<a.length;j++){   
            if(a[j]<temp){   
                temp=a[j];   
                position=j;   
            }   
            }   
            a[position]=a[i];   
            a[i]=temp;   
        }   
        for(int i=0;i<a.length;i++)   
            System.out.println(a[i]);   
    }   
}   

冒泡排序  
(1)基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。  
(2)实例:  
  
(3)用java实现  
[java] view plaincopy  
public class bubbleSort {   
public  bubbleSort(){   
     int a[]={49,38,65,97,76,13,27,49,78,34,12,64,5,4,62,99,98,54,56,17,18,23,34,15,35,25,53,51};   
    int temp=0;   
    for(int i=0;i<a.length-1;i++){   
        for(int j=0;j<a.length-1-i;j++){   
        if(a[j]>a[j+1]){   
            temp=a[j];   
            a[j]=a[j+1];   
            a[j+1]=temp;   
        }   
        }   
    }   
    for(int i=0;i<a.length;i++)   
    System.out.println(a[i]);      
}   
}
回复 使用道具 举报
Lex 发表于 2014-6-2 22:15
简单选择排序  
(1)基本思想:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;  
然后在剩 ...

谢谢,学习了!你的第一种方法效率应该比我的高。
回复 使用道具 举报
给力,大赞啊
回复 使用道具 举报
学习一下~
回复 使用道具 举报
学习学习
回复 使用道具 举报
说冒泡排序的效率更快点,但是实际开发估计用的都是数组的sort方法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马