转:https://www.runoob.com/java/java-examples.html
Java实例——Java数组(一)
1、数组排序及元素查找:数组长度:l
联想:
(1)冒泡排序——遍历l-1次,每次将最大值都放在当前下标范围的最大下标处。
(2)选择排序——遍历l-1次,每次从0索引开始依次将最小元素都放在当前下标范围的最小下标处。
(3)二分查找——前提是数组本身是有序的。对半查找。
//打印数组
public static void ptintArr(int[] arr) {
System.out.print("数组元素输出:");
for(int i =0;i<arr.length;i++) {//循环遍历
if(i==arr.length -1) {//最后一个元素
System.out.print(arr[arr.length-1]);
}else {
System.out.print(arr[i]+",");
}
}
}
//冒泡排序
public static void sort(int[] arr) {
for(int i=0;i<arr.length-1;i++) {//循环遍历,遍历l-1
for(int j=0;j<arr.length-1;j++) {//两两比较
if(arr[j]<arr[j+1]) {//大的往后移
int tem =arr[j];
arr[j] =arr[j+1];
arr[j+1]=tem;
}
}
}
}
int[] arr = {1,2,5,6,3,4,8,7};
ptintArr(arr);//打印
System.out.println();//换行
sort(arr);//调用sort方法
ptintArr(arr);
输出结果:
数组元素输出:1,2,5,6,3,4,8,7
数组元素输出:8,7,6,5,4,3,2,1
//选择排序
@SuppressWarnings("unused")
private static void printSele(int[] arr) {
for(int i =0;i<arr.length-1;i++) {//循环遍历,遍历l-1次
for(int j =i+1;j<arr.length;j++) {//下标0开始比较其他元素,遍历完一次前面的下标少一个
if(arr[i]>arr[j]) {//小的往前移
int tem =arr[i];
arr[i] =arr[j];
arr[j]=tem;
}
}
}
}
int[] arr = {1,2,5,6,3,4,8,7};
ptintArr(arr);
System.out.println();
printSele(arr);
ptintArr(arr);
输出结果:
数组元素输出:1,2,5,6,3,4,8,7
数组元素输出:1,2,3,4,5,6,7,8
//二分查找
public static int searchAtr(int[] arr,int port) {
Arrays.sort(arr);
int min =0;
int max =arr.length;
System.out.println(max);
int index=-1;
while(min <= max) {//比较数组长度
int mid =(min+max)/2;
if(arr[mid] == port) {
index=