Java学习的第六天
debug的学习和意义
- 什么是debug:是供程序员使用的调试程序的工具,它可以用于查看程序的执行流程,也可以用于追踪程序执行过程来调试程序
进制的转换
二进制转换为十进制
十六进制转为十进制
十进制准换为二进制
- 方法:求商取余法,不断地除以基数(几进制,基数就是几)得到余数,直到商为0,再将余数倒着拼起来即可
十进制转为十六进制
二进制的快速转换法
- 方法:8421码:
- 原理:BCD码
补码,反码,原码的概念和关系
位运算的方式
基础练习代码
-
mergesort
ackage com.company; import java.util.Scanner; import java.util.Random; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("请输入一些待排序的数据:"); int size=sc.nextInt(); int []arr=new int[size]; for (int i = 0; i < arr.length; i++) { arr[i]=sc.nextInt(); } PrintArray(arr); mergeSort(arr,0,arr.length-1); System.out.println("\n-------over-------"); PrintArray(arr); } public static void Merge(int []arr,int left,int mid,int right){ int size_l=mid-left+1; int size_r=right-mid; int []subArrLeft=new int[size_l]; int []subArrRight=new int[size_r]; for (int i = 0; i < size_l; i++) { subArrLeft[i]=arr[left+i]; } for (int index = 0; index < size_r; index++) { subArrRight[index]=arr[mid+1+index]; } int i=0; int j=0; int k=left; while(i<size_l&&j<size_r){ if(subArrLeft[i]<=subArrRight[j]){ arr[k]=subArrLeft[i]; i++; k++; } else{ arr[k]=subArrRight[j]; j++; k++; } } while(i<size_l){ arr[k]=subArrLeft[i]; i++; k++; } while(j<size_r){ arr[k]=subArrRight[j]; j++; k++; } } public static void mergeSort(int []arr,int left,int right){ if(left<right){ int mid=left+(right-left)/2; mergeSort(arr,left,mid); mergeSort(arr,mid+1,right); Merge(arr,left,mid,right); } } public static void PrintArray(int []arr){ for (int i = 0; i < arr.length; i++) { System.out.print(arr[i]+" "); } } }
-
quicksort
package study; import java.util.Scanner; import java.util.Random; public class study1 { public static void main(String[] args){ Scanner sc=new Scanner(System.in); Random r=new Random(); System.out.println("你需要排序多少数据:"); int size=sc.nextInt(); int []arr=new int[size]; for (int i = 0; i < arr.length; i++) { arr[i]=r.nextInt(100)+1; } PrintArray(arr); System.out.println("\n-------over------"); QuickSort(arr,0,arr.length-1); PrintArray(arr); int []Get=GetMaxMin(arr); System.out.println("\nMax:"+Get[0]); System.out.println("Min:"+Get[1]); } public static void QuickSort(int []arr,int left,int right){ if(left>right){ return; } int begin=left; int end=right; int temp=arr[left]; while(begin<end){ while(begin<end&&arr[end]>=temp){ end--; } int temp1=arr[begin]; arr[begin]=arr[end]; arr[end]=temp1; while(begin<end&&arr[begin]<=temp){ begin++; } temp1=arr[begin]; arr[begin]=arr[end]; arr[end]=temp1; } QuickSort(arr,left,begin-1); QuickSort(arr,begin+1,right); } public static void PrintArray(int []arr){ for (int i = 0; i < arr.length; i++) { System.out.print(arr[i]+" "); } } public static int [] GetMaxMin(int []arr){ int max=arr[0]; for (int i = 0; i <arr.length ; i++) { if(arr[i]>max){ max=arr[i]; } } int min=arr[0]; for (int j = 0; j < arr.length; j++) { if(arr[j]<min){ min=arr[j]; } } int []MAM={max,min}; return MAM; } }
-