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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© New灬狼 中级黑马   /  2015-12-29 21:01  /  766 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. /**
  2.         New灬狼
  3.         2015年12月24日18:43:38

  4. */

  5. /*
  6. 需求:定义一个功能,对数组进行升序和降序排列。

  7. 思路:
  8.         1,对数组进行排序,其实就是数组中两个数进行比较,
  9.         将位置不对的两个数进行位置互换。
  10.         2,可以选择【选择排序法】进行排序;
  11.         原理是:用数组中的任意一个元素和其他元素一一进行比较,
  12.         一圈比较下来就会确定排序的第一个元素,然后依次将剩下的元素再比较一遍,
  13.         直到最后一个元素时,因为不用比较也已经却定了位置,所以排序也就完成了。

  14. 步骤:
  15. 1,新建ArrayTest01.java;
  16. 2,定义换位功能,swap;
  17. 3,定义选择排序功能,selectSort;
  18. 4,定义一个数组;
  19. 5,输出排序前的序列;
  20. 6,排序;
  21. 7,输出排序后的序列。

  22. */
  23. class ArrayTest01
  24. {
  25.         //定义换位功能:两个未知数参与运算,但是由于是一个数组里的两个元素,所以把数组也传进来;
  26.         //由于没有运算结果,所以返回值类型是void。
  27.         public static void swap(int [] arr,int a,int b)
  28.         {
  29.                 int temp = arr[a];
  30.                 //System.out.print(temp+"\t");
  31.                 arr[a] = arr[b];
  32.                 //System.out.print(a+"\t");
  33.                 arr[b] = temp;
  34.                 //System.out.println(b+"\t");
  35.         }

  36.         //定义选择排序中的升序排序 selectSort
  37.         //返回值类型:无,void;
  38.         //参与运算的未知内容:一个数组;
  39.         public static void selectSort(int [] arr)
  40.         {
  41.                 for (int x=0;x<arr.length ;x++ )       
  42.                 {
  43.                         for (int y =x+1;y<arr.length ;y++ )        //-1:是为了防止角标越界;                               
  44.                         {
  45.                                 if(arr[x]>arr[y])
  46.                                 {
  47.                                         /*
  48.                                         不调用swap时的做法。

  49.                                         int temp = arr[y];
  50.                                         //System.out.print("【"+temp+"\t");
  51.                                         arr[y] =arr[y+1];
  52.                                         //System.out.print(arr[y+1]+"\t");
  53.                                         arr[y+1] =temp;
  54.                                         //System.out.print(arr[y]+"】");

  55.                                         //printArray(arr);
  56.                                         */

  57.                                         swap(arr,x,y);        //调用swap函数;


  58.                                 }
  59.                                
  60.                                
  61.                         }
  62.                 }
  63.         }
  64.        
  65.         public static void main(String []args)
  66.         {
  67.                 int [] arr = {3,1,8,4,6,5,9,7,2};
  68.                 printArray(arr);

  69.                 selectSort(arr);

  70.                 printArray(arr);

  71.                

  72.         }

  73.                 public static void printArray(int[] arr )
  74.         {
  75.                 System.out.print("数组中的元素是:\n{ ");

  76.                 for (int x=0;x<arr.length ;x++ )
  77.                 {
  78.                         if(x!=arr.length-1)
  79.                         {
  80.                                 System.out.print("["+x+"]="+(arr [x])+" ,");
  81.                         }
  82.                         else
  83.                         {
  84.                                 System.out.println("["+x+"]="+(arr [x])+" }\n");
  85.                         }
  86.                 }
  87.         }

  88. }
复制代码


1 个回复

倒序浏览
{:2_33:}今天刚学的  好绕啊  晕死了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马