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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 代文娟 中级黑马   /  2013-8-27 10:25  /  651 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

//排序,找最值
class ArrDemo
{
   public static void main(String[] args)
          {
                int [] arr={1,5,6,9,12,15,19,23};
                int max=getMax(arr);
         int min=getMin(arr);
        System.out.println("max="+max);
         System.out.println("min="+min);
            printArr(arr);
                selectSort(arr);
                bubbleSort(arr);
                printArr(arr);
                int a=halfsearch(arr,11);
                System.out.println(a);
          }

//折半查找,数组必须是有顺序的
   public static int halfsearch(int[]arr,int a)
        {
       int min=0,max=arr.length,mid;
           mid=(min+max)/2;
           while (min<=max)
           {    mid=(min+max)/2;
                   if (a>arr[mid])
                           min=mid+1;
                    else if(a<arr[mid])
                           max=mid-1;
                        else
                                return mid;
           }
           return -1;
   }
         private static void compare(int[]arr,int a,int b)
        {
           if (arr[a]>arr[b])
                         {
                                 int temp=arr[a];
                                 arr[a]=arr[b];
                                 arr[b]=temp;
                         }
          
          }
//找最大值
        public static int getMax(int []arr)
        {
          int max=arr[0];
          for (int i=1;i<arr.length ;i++ )
          {
                  if(arr[i]>max)
                  {
                    max=arr[i];
                  }
          }
          return max;
        }
//找最小值
        public static int getMin(int[]arr)
        {
           int min=arr[0];
           for (int j=1;j<arr.length ;j++ )
           {
                   if(arr[j]<min)
                           min=arr[j];
           }
           return min;
        }
//选择排序
public static void selectSort(int[]arr)
        {   
      for (int i=0;i<arr.length-1 ;i++ )
      {
                  for (int j=i+1; j<arr.length; j++)
                  {
                          compare(arr,i,j);
           }
   }
}
          
          public static void printArr(int[]arr)
                {
              System.out.print("[");
              for (int i=0;i<arr.length ;i++ )
             {
                    if (i!=arr.length-1)
                        System.out.print(arr[i]+",");
                     else
               System.out.print(arr[i]+"]");
             }
                 System.out.println();
          }
//冒泡排序
    public static void bubbleSort(int[]arr)
        {
     for (int i=1;i<arr.length+1 ;i++ )
     {
                 for (int j=0;j<arr.length-1-i ;j++ )
                 {
                        compare(arr,y,y+1);
                 }
     }

    }

}


评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1 冒泡排序是不是....

查看全部评分

4 个回复

倒序浏览
亲  冒泡排序是不是有些小问题
回复 使用道具 举报
黄兴旺 发表于 2013-8-27 12:24
亲  冒泡排序是不是有些小问题
  1. public static void bubbleSort(int[]arr)
  2.    {
  3.            for (int i=1;i<arr.length ;i++ )
  4.         {
  5.                 for (int j=0;j<arr.length-i ;j++ )
  6.                 {
  7.                       compare(arr,y,y+1);
  8.                 }
  9.        }
  10. }
复制代码
是有点问题,应该是这样的。
回复 使用道具 举报
代文娟 发表于 2013-8-27 18:22
是有点问题,应该是这样的。

不对不对  快把毕老师的视频好好看看
回复 使用道具 举报
黄兴旺 发表于 2013-8-27 19:15
不对不对  快把毕老师的视频好好看看

这回明白了是这样写的:for(int x=0;x<arr.length-1;x++)
   {
        for (int y=0;y<arr.length-x-1;y++)
           {
              compare(arr,y,y+1);
          }
}



回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马