(13)数组操作:遍历、输出最大值、冒泡排序、选择排序,java已有的排序方法、折半查找
2017-07-05 08:56
821 查看
1.数组遍历
System.out.println(y); 输出:[I@15db9742
3.输出数组最大值
4、冒泡排序
5.选择排序
即可实现对数组数据从小到大排序
六、数组折半查找
/* * 获取数组中元素,遍历 */ 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;//每次比较前,置为0 for(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;
相关文章推荐
- Java数组遍历、求最大值、选择排序、冒泡排序、二分查找
- 1.数组--最大值 2.数组--选择排序与图解 3.数组--冒泡排序图解 4.数组--1.自带排序2.遍历功能方便 5.数组-常见操作-排序位置置换代码提取
- 数组冒泡排序,选择排序,逆序,折半查找,遍历方法
- 数组的遍历,获取最大值,数组的反转,数组中元素的查找、冒泡排序、选择排序、折半查找法
- java数组扩展练习及冒泡排序,选择排序和折半查找
- java-数组静态初始化、选择排序、冒泡排序、数组的折半查找、折半查找练习
- 黑马程序员:Java数组简介与数组的应用:选择排序、冒泡排序、折半查找
- 数组的遍历,获取最大值,数组的反转,数组中元素的查找、冒泡排序、选择排序、折半查找法
- Java_集合操作_不同的列表选择不同的遍历方法
- 函数_内存结构_数组_排序_选择排序_冒泡排序_折半查找_插入排序_进制转换数组
- Java第四章【流程控制与数组、数组的操作【遍历、排序、查找】】
- Java基本功练习五(一维数组相关操作[声明、创建、乱序、排序、查找]和方法的重载举例[浅议])
- C/C++与Java多维数组,遍历与最大值获取方法!
- java数组的排序,选择排序,冒泡排序,插入排序
- java小程序——给数组随机赋值,查找输入的值以及冒泡和选择排序数组并输出
- Java基础04:选择排序;冒泡排序;折半查找;二位数组
- java数组排序示例(冒泡排序、快速排序、希尔排序、选择排序)
- 黑马程序员—数组最大值、最小值、选择排序、冒泡排序
- 黑马程序员java学习— 数组的选择排序和冒泡排序
- [Java]数组排序-选择排序 冒泡排序 插入排序