黑马程序员技术交流社区
标题:
排序
[打印本页]
作者:
周一川
时间:
2013-4-9 17:12
标题:
排序
排序有哪几种方法?请列举。并用JAVA实现一个快速排序.
作者:
王怀亮
时间:
2013-4-9 18:32
排序方法:
1)插入排序(直接插入排序、希尔排序)
2)交换排序(冒泡排序、快速排序)
3)选择排序(直接选择排序、堆排序)
4)归并排序
5)分配排序(箱排序、基数排序)
各种方法的特点:
所需辅助空间最多:归并排序
所需辅助空间最少:堆排序
平均速度最快:快速排序
不稳定:快速排序,希尔排序,堆排序
举例:
冒泡排序:
public static int[] bubbleSort(int[] args){
for(int i=0;i<args.length-1;i++){
for(int j=i+1;j<args.length;j++){
if (args[i]>args[j]){
int temp=args[i];
args[i]=args[j];
args[j]=temp;
}
}
}
return args;
}
复制代码
选择排序:
public static int[] selectSort(int[] args){
for (int i=0;i<args.length-1 ;i++ ){
int min=i;
for (int j=i+1;j<args.length ;j++ ){
if (args[min]>args[j]){
min=j;
}
}
if (min!=i){
int temp=args[i];
args[i]=args[min];
args[min]=temp;
}
}
return args;
}
复制代码
插入排序:
public static int[] insertSort(int[] args){
for(int i=1;i<args.length;i++){
for(int j=i;j>0;j--){
if (args[j]<args[j-1]){
int temp=args[j-1];
args[j-1]=args[j];
args[j]=temp;
}else break;
}
}
return args;
}
复制代码
常用的也就这些,剩下的你可以自己找资料,这东西网上一大堆,让管理员看到还以为你在刷分呢
作者:
陈丽莉
时间:
2013-4-9 21:10
明显是。。题~ ╮(╯▽╰)╭
若还有问题,继续追问; 没有的话,将帖子分类改成【已解决】哦~
点进自己的帖子,编辑->标题左侧有下拉菜单->改变分类->保存~
作者:
Keith
时间:
2013-4-9 21:15
楼主不是在刷分吧^怎么老是问些垃圾问题^^^^^^^^^^^^
作者:
Keith
时间:
2013-4-9 21:17
陈丽莉 发表于 2013-4-9 21:10
明显是。。题~ ╮(╯▽╰)╭
若还有问题,继续追问; 没有的话,将帖子分类改成【已解决】哦~
呵呵 美女辛苦~~~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2