java数组的排序和查找算法
程序员文章站
2022-07-10 18:32:35
数组高级:排序:冒泡排序:相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处;例:for(int i=0;iarr[j+1]){int temp=arr[i];int arr[i]=arr[i+1];int arr[i+1]=temp;}}}选择排序:...
数组高级:
排序:
冒泡排序:
相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处;
例:
for(int i=0;i<arr.length-1;i++){
for(int j=0;i<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
int temp=arr[j];
int arr[j]=arr[j+1];
int arr[j+1]=temp;
}
}
}
选择排序:
从0索引开始,依次和后面的元素比较,小的往前放,第一次完毕,最小值出现在最小索引处;
例:
for(int i=0;i<arr.length-1;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[j]<arr[i]){
int temp=arr[j];
int arr[j]=arr[i];
int arr[i]=temp;
}
}
}
查找:
普通查找;
当数组内的元素无序时使用,遍历数组并用分支语句判断即可;
二分法查找(数组元素有序):
例子:
int[]arr={1,2,3,4,5};
int max=arr.length-1;
int min=0;
int mid=(max+mid)/2;
int value=3;
while(arr[mid]!=value){
if(arr.[mid]>value){
max=mid-1;
}else if(arr[mid]<value){
min=mid+1;
}
if(min>max){
return -1;
}
mid=(max+mid)/2;
}
Arrays类:
概述:
针对数组进行操作的工具类,提供了排序,查找的等功能;
成员方法:
1.public static String toString(int[] a):将数组转为字符串;
2.public static void sort(int[] a):对数组进行升序排序;
3.public static int binarySearch(int[] a,int key)L使用二分法来搜索指定的值;
Integer 类:
概述:
Integer类在对象中包装了一个基本类型的值,该类提供了多个方法,能在int类型和String类型之间相互转换,还提供了处理int类型时非常有同的其他一些常量和方法;
成员方法:
public static String toBinaryString(int i):返回二进制无符号整数形式字符串;
public static String toHexString(int i):返回十六进制无符号整数形式字符串;
public static String toOctalString(int i):返回八进制无符号整数形式字符串;
public int intValue():将Integer类型的数据转换为int类型;
public statci String toString(int i):将int类型的数据转换为String类型;
public static Integer valueOf(int i):将int类型的数据装箱;
public static int parseInt(String s):将String类型的数据转换为int类型;
String和Int的类型转换;
int->String:
最优解:String.valueOf(int i);
String->Int:
最优解:Integer.parseInt(String s);
进制转换:
十进制到其他进制;
public static String toString(int i,int radix);
其他进制到十进制:
public static int parseInt(String s,int radix);
Character 类:
概述:
Character类在对象中包装一个基本类型char的值,此外,该类提供了几种方法,以确定字符的类别(小写字母,数字等等),并将字符从大写转换成小写(反之亦然);
构造方法:
public Character(char value);
本文地址:https://blog.csdn.net/FlowerLoveJava/article/details/107880605