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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 林海东 中级黑马   /  2015-8-6 00:07  /  418 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

     (5)操作:
//1,获取数组中的最大值,以及最小值。
public static int  GetMax(int[] arr)
{
     int max=arr[0];
     for (int x=1;x<arr.length ;x++ )
     {
          if (max<arr[x])
          {
               max=arr[x];
          }
     }
     return max;
}
public static int GetMin(int[] arr)
{
     int min=arr[0];
     for (int x=1;x<arr.length ;x++ )
     {
          if (min>arr[x])
          {
               min=arr[x];
          }
     }
     return min;
}
//2,对给定数组进行排序(选择排序)。
public static void selectSort(int[] arr)
{
     for (int x=0;x<arr.length-1 ;x++ )//x参与循环,每次循环都能确定最前面的数字,且循环一次,比较次数减一。
     {
          for (int y=x+1;y<arr.length ;y++ )
          {
               if (arr[x]>arr[y])
               {
                    int temp=arr[x];
                    arr[x]=arr[y];
                    arr[y]=temp;
               }
          }
     }
}
//3(冒泡排序)
public static void bubbleSort(int[] arr)
{
     for (int x=0;x<arr.length-1; x++)//x控制循环次数,每次循环都能确定最后一位,且循环一次,比较次数减一。
     {
          for (int y=0;y<arr.length-x-1 ;y++ )
          {
               if (arr[y]>arr[y+1])
               {
               int temp=arr[y];
                    arr[y]=arr[y+1];
                    arr[y+1]=temp;
               }
          }
     }
}
//4打印数组
public static void printArray(int[] arr)
{
     System.out.print("[");
     for (int x=0; x<arr.length;x++ )
     {
          if (x!=arr.length-1)
          {
               System.out.print(arr[x]);
          }
          else
          {
               System.out.print(arr[x]+"]");
          }
     }
}
//5反转数组
public static void reverseArray(int [] arr)
{
     for(int start=0,end=arr.length-1; start<end ; start++,end--)//定义变量控制首尾位置
          {
               int temp = arr[start];//交换位置
               arr[start] = arr[end];
               arr[end] = temp;
          }
}
//6数组查找,折半查找,必须要保证该数组是有序的数组。
public static int halfSerach(int[] arr,int key)
{
     int min=0;
     int max=arr.length-1;
     int mid=(min+max)/2;
     while (arr[mid]!=arr[key])
     {
          if (arr[key]>arr[mid])//判断key与数组中间元素值的大小,然后改变相应的min和max;
          {
               min=mid+1;
          }
          else if (arr[key]<arr[mid])
          {
               max=mid-1;
          }
          if (min>max)//判断出现min大于max则数组中key不存在;
          {
               return -1;
          }
          mid=(min+max)/2;//每循环一次,改变mid的值
     }
     return mid;
}
//7进制转换
class HexConversion
{

     //十进制-->二进制
   
     public static void toBin(int num)
     {
          trans(num,1,1);
     }

   
     //十进制-->八进制
   
     public static void toBa(int num)
     {
          trans(num,7,3);
     }
   
     //十进制-->十六进制
     public static void toHex(int num)
     {
          trans(num,15,4);
     }

     public static void trans(int num,int base,int offset)
     {
     if (num==0)//0不需要转换
     {
          System.out.println(0);
     }
     char[] chs = {'0','1','2','3',
                      '4','5','6','7',
                      '8','9','A','B',
                      'C','D','E','F'};//设置数组
     char[] arr = new char[32];//定义一个容器,用于接收&运算后的值,所对应的chs数组中的元素。

          int pos = arr.length;

          while(num!=0)
          {
               int temp = num & base;//获取二进制最后的base位数值
               arr[--pos] = chs[temp];
               num = num >>> offset;//获取所有二进制位的所有值。
          }

          for(int x=pos; x<arr.length; x++)
          {
               System.out.print(arr[x]);//将arr[]数组打印
          }

          return ;
     }
}


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马