//1、实现二分查找算法:有序的数组
import java.util.Arrays;
public class arrayTest {
public static int binary ( int[] array, int key ) {
Arrays.sort(array);
int low=0;
int high=array.length-1;
while(low<=high){
int mid=(low+high)/2;
if (key==array[mid]){
return mid;}
if(key>array[mid]){
low=mid+1;}
if(key<array[mid]){
low=mid-1;
}
}
return -1;
}
public static void main(String[]args) {
int[]array={1,4,5,8,9,14,18,20,25};
int key=binary(array,5);
System.out.println(key);
}
}
//2、求连续子数组的最大和
public static int sum(const int A[],int N)
{
int thisSum=0;
int maxSum=0;
int i;
int j;
int k;
for(i=0;i<N;i++)
{
thisSum=0;
for(j=i;j<N;j++)
{
thisSum+=A[j];
if(thisSum>maxSum)
maxSum=thisSum;
}
}
return maxSum;
}
public static void main(String[]args) {
int[] A = {10, 2, -4, 18, -8, 6};
System.out.println();
}
//3、交换两个数
pubic static int exchange(int[] A){
for (int a:A)
System.out.printf("%6d",a);
System.out.println();
}
public static void main(String[]args) {
int i ;
int n;
if( i != n, i<A.length,n<A.length){
t=A[i];
A[i]=A[n];
A[n]=t;
System.out.println("元素交换后的数组:“);
}
// 4,逆置数组
public static void DisplayArray(int[]A ){
for int(int a:A)
Arrays.sort[A];
System.out.printf("%6d",a);
System.out.println();
}
public static void main(String[]args) {
int i; int t; int MaxI;
int[]A = new int[10];
Random rNum=new Random();
for(i=0;i<A.length;i++)
A[i]=rNum.nextInt(101);
System.out.println("原始数组:");
DisplayArray(A);
int N=A.length
for(int loop=0;loop<=N-2;loop++){ //外循环进行n-1轮比较
MaxI=loop;
for(i=loop;i<=N-1;i++){ //内循环在无序数中找最大
if (A[i]>A[MaxI])
MaxI=i
//最大值与无序中的第一个元素交换
t=A[loop];
A[loop]=A[MaxI];
A[MaxI]=t;
}
System.out.println("降序数组:");
DisplayArray(A);
}
}
03-24
2614
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交