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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© adalvik 中级黑马   /  2015-4-11 00:12  /  478 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. public class sort {
  2. public static long beginTimer;
  3. public static final int SIZE = 1000;

  4. public static void main(String[] args) {

  5. int[] arr = new int[SIZE];
  6. int i;
  7. for (i = 0; i < SIZE; i++) {
  8. arr[i] = (int) (Math.random() * (System.currentTimeMillis() % Integer.MAX_VALUE)); // 初始化数组
  9. }
  10. showArray(arr);
  11. beginTag();
  12. selectSort(arr);
  13. endTag("selectSort");
  14. showArray(arr);

  15. beginTag();
  16. bubbleSort(arr);
  17. endTag("bubbleSort");
  18. showArray(arr);

  19. beginTag();
  20. shellSort(arr);
  21. endTag("shellSort");
  22. showArray(arr);

  23. }

  24. // 记录排序开始时间
  25. public static void beginTag() {
  26. beginTimer = System.currentTimeMillis();

  27. }

  28. // 标记排序结束时间
  29. public static void endTag(String tips) {
  30. long endTimer = System.currentTimeMillis();
  31. System.out.println(tips+"排序耗时:" + (endTimer - beginTimer));
  32. }

  33. // 选择排序
  34. public static void selectSort(int arr[]) {
  35. for (int i = 0; i < arr.length - 1; i++) {
  36. for (int j = i + 1; j < arr.length; j++) {

  37. if (arr[i] > arr[j]) {
  38. int temp = arr[i];
  39. arr[i] = arr[j];
  40. arr[j] = temp;

  41. }
  42. }

  43. }
  44. }

  45. // 冒泡排序
  46. public static void bubbleSort(int arr[])

  47. {
  48. for (int i = 0; i < arr.length - 1; i++) {

  49. for (int j = 0; j < arr.length - i - 1; j++) {

  50. if (arr[j] > arr[j + 1]) {
  51. int temp = arr[j];
  52. arr[j] = arr[j + 1];
  53. arr[j + 1] = temp;
  54. }
  55. }
  56. }
  57. }

  58. // Shell排序
  59. static void shellSort(int[] arr) {
  60. int i, j, h;
  61. int r, temp;
  62. int x = 0;

  63. for (r = arr.length / 2; r >= 1; r /= 2) // 划组排序
  64. {
  65. for (i = r; i < arr.length; i++) {
  66. temp = arr[i];
  67. j = i - r;
  68. while (j >= 0 && temp < arr[j]) {
  69. arr[j + r] = arr[j];
  70. j -= r;
  71. }
  72. arr[j + r] = temp;
  73. }

  74. x++;

  75. }
  76. }

  77. public static void showArray(int arr[]) {
  78. for (int i = 0; i < arr.length - 1; i++) {

  79. System.out.print(arr[i] + ",");
  80. }
  81. System.out.print("\n");
  82. }
  83. }
复制代码
selectSort排序耗时:4
bubbleSort排序耗时:6
shellSort排序耗时:0



评分

参与人数 1黑马币 +10 收起 理由
label + 10 学习排序了,不过好像还有几个排序没写吧.

查看全部评分

2 个回复

倒序浏览
4,6,0是什么意思?
回复 使用道具 举报
还有 二分法排序这些都没写吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马