黑马程序员技术交流社区
标题:
常见排序,你怎么实现?
[打印本页]
作者:
夏日蓝雪
时间:
2014-6-2 22:11
标题:
常见排序,你怎么实现?
本帖最后由 夏日蓝雪 于 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;
}
}
}
}
作者:
Lex
时间:
2014-6-2 22:15
简单选择排序
(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]);
}
}
作者:
夏日蓝雪
时间:
2014-6-4 16:19
Lex 发表于 2014-6-2 22:15
简单选择排序
(1)基本思想:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;
然后在剩 ...
谢谢,学习了!你的第一种方法效率应该比我的高。
作者:
淡淡柠檬茶
时间:
2014-6-4 16:45
给力,大赞啊
作者:
韩天雷
时间:
2014-6-4 16:47
学习一下~
作者:
、海
时间:
2014-6-4 21:46
学习学习
作者:
四顾行者
时间:
2014-6-4 23:03
说冒泡排序的效率更快点,但是实际开发估计用的都是数组的sort方法
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2