无甚可讲,上练习.
对一个给定的数组实现冒泡排序
import java.util.Arrays;
public class Bubble {
public static int[] bubble(int arr[]){
for(int i=0;i< arr.length-1;i++){
boolean a = false;
for(int j=0; j< (arr.length-1-i);j++){
if(arr[j]>arr[j+1]){
int t=0;
t=arr[j+1];
arr[j+1]=arr[j];
arr[j]=t;
a = true;
}
}
if (a==false){
break;
}
}
return arr;
}
public static void main(String[] args){
int arr[]={12,5,48,26,19,6};
int[] ret = arr;
System.out.println(Arrays.toString(arr));
bubble(ret);
System.out.println(Arrays.toString(ret));
}
}
对一个给定的有序数组进行二分查找
public class BinarySearch {
public static int binarySearch(int[] arr,int key) {
int i=0; int j=arr.length-1;
while(i<=j){
int mid =(i+j)/2;
if(arr[mid]key){
j=mid-1;
}else{
return mid;
}
}
return -1;
}
public static void main(String[] args) {
int[] arr = {1,2,3,4,5};
System.out.println("所寻数字在a["+binarySearch(arr,4)+"]处");
}
}
若一数组内两元素相加为N,求着这两元素的坐标.
public class Sum {
public static int[]sum (int[] arr, int key) {
int a = 0;int b=0;int c=0;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length; j++) {
if(i==j){
continue;
}
if ( arr[i] + arr[j]==key) {
a = i ; b = j;
break;
}
}
}
int[] ret={b,a};
return ret;
}
public static void main(String[] args) {
int arr[] = {4, 7, 11, 15};
System.out.print(Arrays.toString(arr));
System.out.println(" 中相加等于22的两个数组坐标是:");
System.out.println(" " + Arrays.toString(sum(arr, 22)));
}
}



