黑马程序员技术交流社区

标题: 数组选择排序中遇到的一个小插曲 共勉 [打印本页]

作者: 8047107    时间: 2013-5-12 20:22
标题: 数组选择排序中遇到的一个小插曲 共勉
  1. class selectSort
  2. {
  3. public static void selectSort(int [] arr)
  4. {
  5. for (int x=0;x<arr.length-1;x++ )
  6. {
  7. for (int y=x+1;y<arr.length ;y++ )
  8. /*开始的时候把这里y<arr.length写成了y<arr.length-1
  9. 我试了好几次数组不能正常排序。看了又看跟老师讲的一样啊!
  10. 为什么我的排序不对?我电脑有问题?
  11. 后来咨询了一个计算机朋友,他让我把-1去掉试试,我一试还真可以了!
  12. //x<arr.length-1意思是遍历的时候x不用取到最后一位角标,因为后面没数可以比较了,所以没必要。
  13. //而y=arr.length不用-1是因为y=x+1,如果y也要-1的话,最大值就取不到最后一位角标了。
  14. 最后一位始终无法参与排序,所以排序老是不对的。
  15. 又跟老师的对照一下,发现还是自己打错了。
  16. 太粗心了!抄都抄错!下次不能这样了!
  17. */
  18. {
  19. if (arr[x]>arr[y])
  20. {
  21. int temp=arr[x];
  22. arr[x]=arr[y];
  23. arr[y]=temp;
  24. }
  25. }
  26. }

  27. }

  28. public static void main(String[] args)
  29. {
  30. int []arr={2,1,6,9,8,3};
  31. printArray(arr);//排序前打印
  32. selectSort(arr);
  33. printArray(arr);//排序后打印
  34. }
  35. public static void printArray(int [] arr)
  36. {

  37. System.out.print("[");
  38. for (int x=0;x<arr.length;x++ )
  39. {
  40. if (x!=arr.length-1)
  41. System.out.print(arr[x]+", ");
  42. else
  43. System.out.println(arr[x]+"]");

  44. }
  45. }

  46. }
复制代码

作者: 许庭洲    时间: 2013-5-13 06:58
值得学习ing!
作者: 8047107    时间: 2013-5-13 09:13
许庭洲 发表于 2013-5-13 06:58
值得学习ing!

大神这也需要学啊?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2