传智基础与加强day06

来源:互联网 发布:java目录遍历漏洞修复 编辑:程序博客网 时间:2024/04/29 04:46

普通排序 冒泡排序

/*要求:对一个长度为10000的数组分别进行普通排序,冒泡排序,函数排序,并比较。思路:1 首先建立一个函数取一个10000长度的随机数组。2 对这个数组分别进行三种排序3 记录三种排序所用时间4 比较3段时间的耗时*/import java.util.*;class Compare {public static void main(String[] args) {//int [] arr=code(10000);  //取一个长度为10000的数组 // sort (arr); //bubbling(arr); // api(arr);compare();//System.out.println(Arrays.toString(arr));}public static int [] code(int a)    //取数组的函数(随机数据){Random r = new Random();int [] arr=new int [a];    for (int i=0;i<arr.length ;i++ ){arr[i]=r.nextInt(10000);} return arr;}public static void sort(int [] arr)  //普通排序的函数{  for (int i=0;i<arr.length-1 ;i++ )    {for (int j=i+1;j<arr.length ;j++ )  {if (arr[i]>arr[j]){int sum=arr[i];arr[i]=arr[j];arr[j]=sum;}}    }}public static void bubbling(int [] arr) //冒泡排序算法{for (int i=0;i<arr.length-1;i++ ){for (int j=0;j<arr.length-1-i ;j++ ){if (arr[j]>arr[j+1]){int num =arr[j];arr[j]=arr[j+1];arr[j+1]=num;}}}}public static void api(int [] arr)  //函数排序法{Arrays.sort(arr);}public static void compare(){int [] arr=code(10000000);       //取一个随机数组long now1 = System.currentTimeMillis();//记录开始时间sort (arr);                   //普通排序long end1 = System.currentTimeMillis();//记录结束时间long time1 =end1-now1;          //用时System.out.println("对长度为10000的数组普通排序用时"+time1+"毫秒");arr=code(10000000);       //取一个随机数组long now2 = System.currentTimeMillis();//记录开始时间bubbling(arr);                   //冒泡排序long end2 = System.currentTimeMillis();//记录结束时间long time2 =end2-now2;          //用时System.out.println("对长度为10000的数组冒泡排序用时"+time2+"毫秒");arr=code(10000000);       //取一个随机数组long now3 = System.currentTimeMillis();//记录开始时间api(arr);                   //函数排序long end3 = System.currentTimeMillis();//记录结束时间long time3 =end3-now3;          //用时System.out.println("对长度为10000的数组函数排序用时"+time3+"毫秒");long min=time1<time2?time1:time2;min=min<time3?min:time3;System.out.println("对长度为10000的数组排序最少用时"+min+"毫秒");}}


 二分法查找

class Demo02 {public static void main(String[] args) {int[] arr = {23,34,45,45,12,1,9};System.out.println(search(arr,45));int[] arr1 = {12,23,34,45,67};System.out.println(searchHalf(arr1,34));}/*返回值类型:int参数:int[]    int key  键普通查找*/public static int search(int[] arr,int key){for(int i=0;i<arr.length;i++){if(arr[i]==key){return i;}}return -1;}/*返回值类型:int   角标参数:int[]   int*/public static int searchHalf(int[] arr,int key){int min,max,mid=0;min = 0;max = arr.length-1;while(max>=min){mid = (min+max)/2;if(arr[mid]==key){return mid;}else if(key>arr[mid]){min = mid+1;}else if(key<arr[mid]){max = mid-1;}}return -1;}}


二维数组

二维数组[][]
格式1:int[][] arr = new int[3][2];
格式2:int[][] arr = new int[3][];
格式3:int[][] arr = {{3,8,2},{2,7},{9,0,1,6}};

 

0 0
原创粉丝点击