(13)数组操作:遍历、输出最大值、冒泡排序、选择排序,java已有的排序方法、折半查找
来源:互联网 发布:洋葱英语软件 编辑:程序博客网 时间:2024/05/23 13:32
1.数组遍历
/* * 获取数组中元素,遍历 */ int []y=new y[3]; for(int i=0;i<y.length;i++) //数组名.length获取数组长度,其他不能用数组名.调用 { System.out.println("y["+i+"]="+y[i]+";"); }
2.打印数组名,就是打印数组地址,输出格式[数组数据类型@数组首地址(哈希地址)System.out.println(y); 输出:[I@15db9742
3.输出数组最大值
/* * 需求:获取数组中的最大值 */public int MaxArr(int[] a) {int max=a[0];//存放最大值for(int i=0;i<a.length;i++) {if(a[i]>max) {max=a[i];}}return max;}/* *调用MaxArr()方法,不能用数组名.,而是要用类对象. */ int[] arr= {10,5,9,45,2,47}; Demo d=new Demo(); int temp=d.MaxArr(arr); System.out.println("arr数组的最大值:"+temp);
4、冒泡排序
/* * 对给定的数组排序 * 思路:冒泡排序 * 1.外层控制进行的次数 * 2.内层来求剩余数组中的最大值 * 3.对冒泡排序优化:当某次没有数组交换时,则说明未排序数组有序,不用再比较 */ public void busort(int a[]) {int flag=0;for(int i=a.length-1;i>0;i--) { flag=0;//每次比较前,置为0for(int j=0;j<i;j++) {if(a[j]>a[j+1]) {int temp=a[j];a[j]=a[j+1];a[j+1]=temp;flag=1;//有比较,则置1}}count++;if(flag==0) {break;//说明某次中没有调换顺序,则说明已有序}}} Demo d=new Demo();调用: d.busort(arr); System.out.println("冒泡排序后数组数据从小到大输出如下:"); d.prinArr(arr);
调用图示:5.选择排序
/* * 选择排序: * 思路: * 1.每次让未排序的第一个元素当最小值,对后面的依次比较,从而确定最小值,放在 * 这次未排序元素的第一位中。 * 2.其中涉及两个元素位置交换问题 * */public void Sort(int a[]) {int min;int temp;for(int i=0;i<a.length;i++) {int index=i;min=a[i];for(int j=i;j<a.length;j++) //找到最小值和最小值下标 {if(a[j]<min) {min=a[j];index=j;}} temp=a[index];a[index]=a[i];a[i]=temp;}}
JAVA已经对数组排序功能实现集成了方法Arrays.sort(数组名);即可实现对数组数据从小到大排序
六、数组折半查找
/*折半查找的前提是有序 * 折半查找数组中关键字,并返回数组下标 * */public int midSelect(int a[],int key) {int low,high,mid;low=0;high=a.length-1; mid=(low+high)/2; while(a[mid]!=key&&low<=high)//low>high则是不存在该值的情况 。若有该数,则a[mid]=key {if(a[mid]>key) //在mid左面比较{high=mid-1;}else if(a[mid]<key)//在mid右面比较{low=mid+1;} mid=(low+high)/2;//下一次判断是否够该数做准备 } low可以作为向有序数组插入数据的位置(画图理解) //返回下标或者-1 if(a[mid]==key) { return mid;} else return -1;
阅读全文
0 0
- (13)数组操作:遍历、输出最大值、冒泡排序、选择排序,java已有的排序方法、折半查找
- 数组冒泡排序,选择排序,逆序,折半查找,遍历方法
- 数组的遍历,获取最大值,数组的反转,数组中元素的查找、冒泡排序、选择排序、折半查找法
- java 折半查找 冒泡排序 选择排序
- Java数组遍历、求最大值、选择排序、冒泡排序、二分查找
- java-数组静态初始化、选择排序、冒泡排序、数组的折半查找、折半查找练习
- 二维数组已选择排序、折半查找
- JAVA冒泡与选择排序,折半查找
- JAVA冒泡与选择排序,折半查找
- 选择-冒泡排序,折半查找
- 冒泡排序 & 选择排序 & 折半查找
- 冒泡排序 选择排序 折半查找
- 黑马程序员:Java数组简介与数组的应用:选择排序、冒泡排序、折半查找
- Java基础—选择排序,冒泡排序和折半查找
- java基础 选择排序、冒泡排序、折半查找法
- 对数组的排序,折半查找,遍历,求取最大值
- Java基础04:选择排序;冒泡排序;折半查找;二位数组
- java的 最大值 选择排序 冒泡排序 二分查找
- mybatis 自定义typehandler,转换特定字段
- 沃趣科技与Mellanox联合打造证券行业高性能及同城双活数据库云平台
- imagemagick 图片叠加-compose模式详解
- Codeforces 1B Spreadsheets(模拟+26进制思想)
- POJ 2799 IP Networks 笔记
- (13)数组操作:遍历、输出最大值、冒泡排序、选择排序,java已有的排序方法、折半查找
- 线程应用
- Servlet工作原理
- RTSP/RTP/RTCP详解整理
- C++输入输出流
- MySQL 大表优化方案
- Leetcode Populating Next Right Pointers in Each Node
- SpringMVC 拦截器 详解
- 通用常见工具汇总<Pair,Tuple,>.