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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 窗外的雪儿飞 中级黑马   /  2015-8-30 22:20  /  881 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.最值
思路:
定义一个变量与数组中每个元素做比较,如果大于变量的值,那么将数组的值赋予变量
public static void max(int[] arr)
        {
                 int max=0;
                for (int x = 0;x<arr.length ;x++ )
                {
                        if (arr[x]>max)
                        {
                                max=arr[x];
                        }
                }
                System.out.println("最值是"+max);

        }

14 个回复

倒序浏览
2.选择排序
将每个数和数组里其它所有的元素比,让最值一直在最左边,比完一轮,最值不参与下一轮.
public static void chooseSort(int[] arr)
        {
                for (int x=0;x<arr.length-1 ;x++ )
                {
                        for (int y =x+1;y<arr.length ;y++)
                        {
                                if(arr[x]<arr[y])
                                {
                                        swap(arr,x,y);//交换
                                }
                               
                        }
                }
        }
回复 使用道具 举报
不错不错,就是有点水贴的嫌疑{:2_30:}
回复 使用道具 举报
3.冒泡排序
将两个相邻的数组元素进行比较,让所有的最值向右走,每跑一轮,最值不参与下一轮.
public static void bubbingSort(int[] arr)
        {
                for (int x=0;x<arr.length-1;x++)
                {
                        for (int y =0; y<arr.length-x-1;y++ )
                        {
                                if (arr[y]>arr[y+1])
                                {
                                        swap(arr,y,y+1);
                                }
                        }
                }
        }
回复 使用道具 举报
顶一下!!!
回复 使用道具 举报
  学习了  
回复 使用道具 举报
4.选择排序优化
思路:定义一个指针,让其代替其中一个元素下标且去和每其它元素比较,把每一轮元素最值下标赋予指针,每轮结束后得到的就是最值的下标,然后,把最值换到最左边.
public static void chooseSortOptimaze(int [] arr)
        {
                for (int x=0 ;x<arr.length-1 ;x++ )
                {
                        int index =x;
                        for (int y=x+1; y<arr.length;y++ )
                        {
                                if (arr[index]>arr[y])
                                        index=y;
                        }
                        swap(arr,index,x);
                }
        }
回复 使用道具 举报
5.折半查找
只针对有有序数组
定义三个指针,一个代表开头,一个代表末尾,一个代表中间值.
假设数组从小到大,因为有序,如果数值小于中间数,那么这个数只可能存在于中间数的左边,结尾指针移动到中间指后一位,针反这则在右边,每比完一轮,数少一半,没有找到再比,最终开头下标大于到最后都没有找到.则结束.
public static void reduceSort(int[] arr,int x)
        {
                int start=0,end =arr.length-1,mid=(start+end)/2;
                while (start<=end)
                {
                        if (x==arr[mid])
                        {
                                System.out.println(mid);
                        }
                        if (x<arr[mid])
                        {
                                end=mid-1;
                                mid=(start+end)/2;
                        }
                        if (x>arr[mid])
                        {
                                start=mid+1;
                                mid=(start+end)/2;
                        }
                }
                if (start>end)
                {
                        System.out.println("数组里没有这个数");
                }
        }
回复 使用道具 举报
哈哈,这个我学过了呢,好好学哟....加油
回复 使用道具 举报
哈哈哈,,,加油做...代码要每天练,
回复 使用道具 举报
hutudan1993 发表于 2015-8-30 22:49
哈哈,这个我学过了呢,好好学哟....加油

嘿嘿,好哒!我会努力的。
回复 使用道具 举报
hutudan1993 发表于 2015-8-30 22:50
哈哈哈,,,加油做...代码要每天练,

嗯,谢谢。我每天下课回来还要把当天的复习一下,然后预习一下。完了就是码代码,最后敲一小段时间的金山打字通。发现时间就差不多十二点了
回复 使用道具 举报

互相学习,加油!
回复 使用道具 举报

谢谢啦!!
回复 使用道具 举报
来个归并 快排什么的呗~   
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马