专业的JAVA编程教程与资源

网站首页 > java教程 正文

java数组元素排序,冒泡排序和选择排序

temp10 2024-10-22 16:57:34 java教程 10 ℃ 0 评论

java学习之数组元素排序

选择排序

java数组元素排序,冒泡排序和选择排序

  • *返回值类型 void

  • *参数列表 int[] arr

  • * 分析:选择排序

  • * 第一次arr[0]与arr[1-4]比较,总共比较4次

  • * 第二次arr[1]与arr[2-4]比较,总共比较3次

  • * 第三次arr[2]与arr[3-4]比较,总共比较2次

  • * 第四次arr[3]与arr[4]比较,总共比较1次

冒泡排序

  • 返回值类型void

  • * 参数列表 int[] arr

  • * 分析:冒泡排序

  • * 第一次比较arr[0]和arr[1],arr[1]和arr[2],arr[2]和arr[3],arr[3]和arr[4]比较了4次

  • * 第二次比较arr[0]和arr[1],arr[1]和arr[2],arr[2]和arr[3]比较了3次

  • * 第三次比较arr[0]和arr[1],arr[1]和arr[2]比较了2次

  • * 第四次比较arr[0]和arr[1]比较了1次


  1. package com.ifenx8.study.array;

  2. publicclassDemo_BubbleSort{

  3. /**

  4. 需求:

  5. 数组元素:{24, 69, 80, 57, 13}

  6. 请对数组元素进行排序。

  7. */

  8. publicstaticvoid main(String[] args){

  9. int[] arr ={24,69,80,57,13};

  10. //bubbleSort(arr);//冒泡排序

  11. selectSort(arr);//选择排序

  12. print(arr);

  13. }

  14. /*

  15. *返回值类型 void

  16. *参数列表 int[] arr

  17. *

  18. * 分析:选择排序

  19. * 第一次arr[0]与arr[1-4]比较,总共比较4次

  20. * 第二次arr[1]与arr[2-4]比较,总共比较3次

  21. * 第三次arr[2]与arr[3-4]比较,总共比较2次

  22. * 第四次arr[3]与arr[4]比较,总共比较1次

  23. *

  24. */

  25. publicstaticvoid selectSort(int[] arr){

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

  27. for(int j = i +1; j < arr.length; j++){if(arr[i]> arr[j]){

  28. /*int temp = arr[i];

  29. arr[i] = arr[j];

  30. arr[j] = temp;*/

  31. swap(arr, i , j);

  32. }

  33. }

  34. }

  35. }

  36. /**冒泡排序

  37. * 返回值类型void

  38. * 参数列表 int[] arr

  39. * 分析:

  40. * 第一次比较arr[0]和arr[1],arr[1]和arr[2],arr[2]和arr[3],arr[3]和arr[4]比较了4次

  41. * 第二次比较arr[0]和arr[1],arr[1]和arr[2],arr[2]和arr[3]比较了3次

  42. * 第三次比较arr[0]和arr[1],arr[1]和arr[2]比较了2次

  43. * 第四次比较arr[0]和arr[1]比较了1次

  44. *

  45. */

  46. publicstaticvoid bubbleSort(int[] arr){

  47. for(int i =0; i < arr.length -1; i++){//外部循环比较的是第几次

  48. for(int j =0; j < arr.length -1-i; j++){//内部循环比较了几次 if(arr[j] > arr[j + 1]){

  49. /*int temp = arr[j];

  50. arr[j] = arr[j + 1];

  51. arr[j + 1] = temp;*/

  52. swap(arr , j , j +1);

  53. }

  54. }

  55. }

  56. }

  57. /*

  58. *打印数组

  59. */

  60. publicstaticvoidprint(int[] arr){

  61. for(int i =0; i < arr.length; i++){

  62. System.out.print(arr[i]+" ");

  63. }

  64. }

  65. /*

  66. * 把两个排序中共同的部分抽取成一个方法

  67. * int temp = arr[i];

  68. arr[i] = arr[j];

  69. arr[j] = temp;

  70. 代码更简洁

  71. */

  72. privatestaticvoid swap(int[] arr,int i ,int j){

  73. int temp = arr[i];

  74. arr[i]= arr[j];

  75. arr[j]= temp;

  76. }

  77. }

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表