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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 周一川 中级黑马   /  2013-4-9 17:12  /  1236 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

排序有哪几种方法?请列举。并用JAVA实现一个快速排序.

4 个回复

倒序浏览
排序方法:
1)插入排序(直接插入排序、希尔排序)
2)交换排序(冒泡排序、快速排序)
3)选择排序(直接选择排序、堆排序)
4)归并排序
5)分配排序(箱排序、基数排序)
各种方法的特点:
所需辅助空间最多:归并排序
所需辅助空间最少:堆排序
平均速度最快:快速排序
不稳定:快速排序,希尔排序,堆排序
举例:
冒泡排序:
  1. public static int[] bubbleSort(int[] args){
  2.                 for(int i=0;i<args.length-1;i++){
  3.                        for(int j=i+1;j<args.length;j++){
  4.                                if (args[i]>args[j]){
  5.                                        int temp=args[i];
  6.                                       args[i]=args[j];
  7.                                       args[j]=temp;
  8.                                }
  9.                          }
  10.                 }
  11.                  return args;
  12.         }
复制代码
选择排序:
  1. public static int[] selectSort(int[] args){
  2.                  for (int i=0;i<args.length-1 ;i++ ){
  3.                          int min=i;
  4.                          for (int j=i+1;j<args.length ;j++ ){
  5.                                  if (args[min]>args[j]){
  6.                                          min=j;
  7.                                  }
  8.                          }
  9.                          if (min!=i){
  10.                          int temp=args[i];
  11.                          args[i]=args[min];
  12.                          args[min]=temp;        
  13.                          }
  14.                  }
  15.                  return args;
  16.          }
复制代码
插入排序:
  1. public static int[] insertSort(int[] args){
  2.                  for(int i=1;i<args.length;i++){
  3.                          for(int j=i;j>0;j--){
  4.                                  if (args[j]<args[j-1]){
  5.                                          int temp=args[j-1];
  6.                                          args[j-1]=args[j];
  7.                                          args[j]=temp;        
  8.                                  }else break;
  9.                          }
  10.                  }
  11.                  return args;
  12.          }
复制代码
常用的也就这些,剩下的你可以自己找资料,这东西网上一大堆,让管理员看到还以为你在刷分呢

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
明显是。。题~   ╮(╯▽╰)╭

若还有问题,继续追问; 没有的话,将帖子分类改成【已解决】哦~

点进自己的帖子,编辑->标题左侧有下拉菜单->改变分类->保存~
回复 使用道具 举报
楼主不是在刷分吧^怎么老是问些垃圾问题^^^^^^^^^^^^
回复 使用道具 举报
陈丽莉 发表于 2013-4-9 21:10
明显是。。题~   ╮(╯▽╰)╭

若还有问题,继续追问; 没有的话,将帖子分类改成【已解决】哦~

呵呵 美女辛苦~~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马