黑马程序员(十)数组的简单基本应用(排序,查找,十进制变2,8,16等等)
2014-03-29 23:54
447 查看
package traffic; import java.util.Arrays; public class ArrayTest { public static void main(String[] args){ //int[] arr={1,44,555,677,888,44,2}; //max(arr);//最小值就不演示了。。。同理就行。打印的值是::888 //bubbleSort(arr);//冒泡排序 //secletSort(arr);//选择排序 int[] arr={1, 27, 44, 47, 555, 677, 888}; System.out.println(Arrays.toString(arr));//打印结果:::[1, 2, 44, 44, 555, 677, 888] 排序成功。两种方法都成功 seek(arr,44);//获取到插入角标。。打印结果是::2 seek(arr,14);//获取到插入角标。。打印结果是::1 halfSearch(arr,44);//获取到插入角标。。打印结果是::2 halfSearch(arr,14);//获取到插入角标。。打印结果是::1 upsideSort(arr); System.out.println(Arrays.toString(arr));//打印结果是[888, 677, 555, 47, 44, 27, 1]成功反转。 int num=189; System.out.println(Integer.toOctalString(num));//275 trans(num,7,3);//275和上面数据相同。转化8进制成功 System.out.println(""); System.out.println(Integer.toHexString(num));//bd trans(num,15,4);//BD 和上面数据相同转化成16进制成功 System.out.println(""); System.out.println(Integer.toBinaryString(num));//10111101 trans(num,1,1);//10111101 和上面数据相同。转化成功 } //简单的数组中的两个值互换方法。 public static void swap(int[] arr,int a,int b){ int temp=arr[a]; arr[a]=arr[b]; arr[b]=temp; } //数组。获取最大值。最小值 public static void max(int[] arr){ int temp=arr[0]; for(int x=1;x<arr.length;x++){ if(temp<arr[x]) temp=arr[x]; } System.out.println(temp); } //对数组进行排序.a 方法。冒泡排序 public static void bubbleSort(int[] arr){ for(int x=0;x<arr.length-1;x++){ for(int y=0;y<arr.length-1-x;y++){ if(arr[y]>arr[y+1]) swap(arr,y,y+1); } } } //对数组进行排序。。b方法。。选择排序 public static void secletSort(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); } } //给定一个有序的数组,如果往该数组中存储一个元素,并保证这个数组还是有序的,这是普通的查找 public static void seek(int[] arr,int num){ int y=0; for(int x=0;x<arr.length;x++){ if(num>arr[x]) y=x+1; } System.out.println(y); } //折半查找 public static int halfSearch(int[] arr,int num){ int min=0; int max=arr.length-1; int mid; while(min<=max){ mid=(min+max)/2; if(num>arr[mid]) min=mid+1; else if(num<arr[mid]) max=mid-1; else { System.out.println(mid); return mid; } } System.out.println(min); return min; } //将数组进行反转 public static void upsideSort(int[] arr){ for(int x=0;x<arr.length/2;x++){ int temp=arr[x]; arr[x]=arr[arr.length-1-x]; arr[arr.length-1-x]=temp; } } //查表法。。把10进制分别转成16进制。8进制,2进制 public static void trans(int num,int base,int offest){ char[] chem={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; char[] arr=new char[32]; int post=arr.length; if(num==0){ System.out.println(0); return; } while(num!=0){ int temp=num&base; arr[--post]=chem[temp]; num=num>>>offest; } for(int x=post;x<arr.length;x++){ System.out.print(arr[x]); } } }
相关文章推荐
- JAVA day03 数组的应用,查找,求最值与基本排序方式
- 黑马程序员——Java中基本的进制转换、排序、查找
- 黑马程序员:Java数组简介与数组的应用:选择排序、冒泡排序、折半查找
- 黑马程序员_java数组排序、查找、置换
- 黑马程序员_四 【数组操作】【数组的简单应用】
- 数组简单操作排序、查找
- 黑马程序员----实用的数组排序查找
- 黑马程序员_JavaSE基础06 之 数组的操作 求最值 排序 折半查找
- 黑马程序员——Java学习笔记——数组的排序和查找
- 黑马程序员 java基础 函数 数组 查找与排序总结
- 01_Java基础_数组的定义、基本使用和简单应用
- 黑马程序员----------java基础知识(6)之数组查找和二维数组及其应用
- 黑马程序员-day04数组排序,查找
- java 数组比较,元素的比较,Comparable,Comparator比较的应用实现,排序,查找示例
- JAVA基础day04 数组学习 排序和查找基本算法
- java基础知识(六) 数组中copy、排序、查找的应用
- 黑马程序员_Java基础_04数组main函数args详解、数组排序、二分查找实例
- 黑马程序员03数组排序与二分法查找
- 剑指Offer--数组在排序数组中出现的次数--二分查找的应用
- 大数据下-巧用位数组排序和判重及布隆过滤器的简单应用