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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ReadCode 中级黑马   /  2015-4-29 09:02  /  383 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. class ArrTest{
  2.          public static void main (String[]args)
  3.          {
  4.                  int arr []= new int [] {3,4,6,8,9,1};
  5.                  int max=getMax(arr);
  6.                         //int max=getMax(  new int [] {3,4,6,8,9,1});//注意这里:其实这句话的意思就是值,将arr这个数据传进来,然后调用getMax方法
  7.                         int min =getMin(arr);
  8.                         System.out.println("max="+max);
  9.                         System.out.println("max="+min);
  10.                        
  11.          }
  12.        
  13.         public static int getMax(int arr[])  //获取最大值的方法
  14.         {
  15.                
  16.                 int max=0;
  17.                 for (int m=0;m<arr.length;m++)
  18.                 {
  19.                         if (arr[max]<arr[m])
  20.                         {
  21.                                 arr[max]=arr[m];
  22.                         }
  23.             }
  24.                 //System.out.println(arr[max]);使用这种打印方式是错误的,因为,返回的结果类型不一致
  25.                 return arr[max];//在这里为什么要用return,而不是直接使用打印语句?  
  26.                
  27.         }
  28.         public static  int getMin(int arr[])  //获取最小值的方法
  29.         {
  30.                 int min =0;
  31.              for (int n=0;n<arr.length;n++)
  32.              {
  33.                      if(arr[min]>arr[n])
  34.                      {
  35.                              min=n;
  36.                      }
  37.              }
  38.              return arr[min];
  39.         }
  40.        
  41.        
  42.        
  43.         class ArrDemo3
  44. {  
  45.         public static void main (String[]args)
  46.         {
  47.                
  48.                 int arr[]=new int[]{3,7,4,9,1,0,6};
  49.         // paiXu(arr);
  50.                 //daYin(arr);
  51.                 //fanZhuang(arr);
  52.                 //daYin(arr);
  53.         fanZhuang_1(arr);
  54.     daYin(arr);
  55.         //  maoPao(arr);
  56.          //  daYin(arr);
  57.         }
  58.        
  59.           
  60.         public static  void paiXu(int arr[])  //排序方法
  61.         {
  62.                 for(int m=0;m<arr.length-1;m++)
  63.                 {
  64.                         for(int n=m+1;n<arr.length;n++)
  65.                         {
  66.                                 if (arr[m]>arr[n])
  67.                                 {
  68.                                         swap(arr,n,m);  //调用数据置换函数
  69.                                          
  70.                                   }
  71.                                 }
  72.                         }
  73.                 }  

  74.         public static void maoPao(int arr[])//冒泡派讯,其实冒泡程序与排序功能一样,上面的代码实现的是正序排列,冒泡排序实现的是倒序排列,同样的可以更改,arr[m]>arr[n]即可实现正序排列
  75.         {
  76.                 for(int n=0;n<arr.length-1;n++)
  77.                 {
  78.                         for(int m=0;m<arr.length-n-1;m++)  //注意这里的在m取值的时候的范围,注意在这里m<arr.length-n-1,与m<arr.length-m-1;都可以实现正确的结果,但是,在同时运行,排序方法和冒泡方法的时候会出现不正确结果,原因在于:m的取值是随着n变化的,如果低m个数值小于m+1的数值的话,那么不进行置换接下来要做的就是第m+2个数了
  79.                         {
  80.                                 if(arr[m]<arr[m+1])
  81.                                 {
  82.                                        
  83.                                         swap(arr, m, m+1);
  84.                                 }
  85.                                
  86.                         }
  87.                 }
  88.         }
  89.         public   static  void swap(int arr[],int x,int y)  //数据置换,重新定义一个对象,进行封装,实现代码的多用型。
  90.        
  91.         {
  92.           int temp =arr[x];  //注意此处的置换是对arr[x]这个数进行置换,而不是对脚标进行置换,所以这里不能写成,int temp=x;x=y;y=tem;的形式。
  93.           arr[x]=arr[y];
  94.           arr[y]=temp;
  95.           
  96.         }
  97.                
  98.          public static void daYin (int arr[]) //打印语句
  99.          {
  100.                System.out.print("[");
  101.               for(int m=0;m<arr.length;m++)
  102.               {  
  103.                       if(m!=arr.length-1)
  104.                       System.out.print(arr[m]+",");
  105.                       else
  106.                               System.out.println(arr[m]+"]");
  107.                     
  108.               }
  109.             
  110.      }
  111.         public static void fanZhuang(int arr[])  //数组的反转
  112.         {
  113.           
  114.                 for (int m=0, n=arr.length-1;m<n;m++,n-- )        //注意这里的一个思想,首先让最小的脚标与最大的脚标相比较,比较完成后再进行数据置换,置换完成后再进行下一个最小脚标,下一个第二大脚标比较
  115.            {
  116.                    swap(arr,m,n);
  117.                   
  118.            }
  119.                
  120.        
  121.         }  
  122.         public  static void  fanZhuang_1(int arr[])  //反转数据的另外一种方法
  123.         {
  124.          for(int n=0;n<arr.length-1;n++)
  125.          {
  126.                 for (int m=0;m<arr.length-n-1;m++)  //这句语句与冒泡程序相似,就是把数据一个一个的进行替换
  127.                  {
  128.                         swap(arr,m,m+1);
  129.                 }
  130.          }
  131.         }
  132.        
  133.        
  134. }


  135. import java.util.Arrays;//调用java中自有的函数
  136. class Test {
  137.          public static void main(String[]args)
  138.          {
  139.                  int arr[]={1,2,5,7,9,0};
  140.                  Arrays.sort(arr);//直接使用java中已存在的方法,开发中多用,Arrays.sort(arr)
  141.                  System.out.print("[");
  142.           for(int i=0;i<arr.length;i++)
  143.          
  144.             {
  145.                   if(i!=arr.length-1)
  146.                    System.out.print(+arr[i]+",");
  147.                
  148.                   else
  149.                          System.out.print(arr[arr.length-1]+"]");
  150.           }
  151.             
  152.          }
  153. }
复制代码
最近在回顾自学的一些东西,在这写了下,数组中的几种排序方法,在注释的地方基本上是我理解的大白话吧,不过看起来挺使用的,方便大家在某个地方卡主了,没想通的时候作为参考。

评分

参与人数 1技术分 +2 收起 理由
lwj123 + 2

查看全部评分

4 个回复

倒序浏览
学习学习
回复 使用道具 举报
不错,总结的很好
回复 使用道具 举报
不错,总结的很好
回复 使用道具 举报
学习下,看下总结也不错,少走些弯路
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马