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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 英雄传说ER 中级黑马   /  2014-10-11 01:37  /  833 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我们就写几个函数(几个段子)有不同功能,可以对数组 遍历,获取最值,排序,查找
数组:就是同一类型数据的集合 一维格式 元素类型[] 数组名 = new 元素类型[数组长度] 或者 new 元素类型[]{元素1·元素2···}
static void BianLi(int[] arr){for(int x=0;x<arr.length;x++){操作arr[x]}}
static void Max(int[] arr){int max=arr[0];遍历arr{if(arr[x]>max){max=arr[x]}} return max}
static void Min(int[] arr){int min=0;遍历arr{if(arr[x]<arr[min]){min=x}} return arr[min]}
static void PanXu(int[] arr){遍历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]) int temp=arr[y]; arr[y]=arr[y+1];arr[y+1]=temp}
这是冒泡排序 就是一个数和后面一个数比 见到大的就交换位置 然后后面这数再和它后面的数比 以此类推 最后一个数就是最小的了;
static void PanXu(int[] arr){遍历arr for(int x=0;x<arr.length-1;x++)
                             for ( int y=x+1;y<arr.length;y++)
                             int temp=arr[x];arr[x]=arr[y];arr[y]=temp;}
这是选择排序 第一个数和后面一个的比 见到大的就交换位置 然后第一个数在和更后面的比 见到大的再交换位置 选出来的第一就是最大的
先排序成有序数组,折半查找 min=0 max=arr.length-1 mid=(max+min)/2
while(arr[mid!=key])看数组最中间的数是否要找的数
if(key>arr[mid]) min=mid+1 如果key比中间的数大 就从后半边查找 依然用折半法
if(key<arr[mid]) max=mid-1 如果key比中间的数小 就从前半边查找 依然用折半法
return min;

1 个回复

倒序浏览
看不懂,,还没学
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马