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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 8047107 高级黑马   /  2013-5-12 20:22  /  1032 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  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. }
复制代码

2 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
许庭洲 发表于 2013-5-13 06:58
值得学习ing!

大神这也需要学啊?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马