1、给出一组数组,将奇数放在前面,偶数放在后面
public class Exerse1{
public static int[] toChang(int[] arr){
int left=0;
int temp=0;
int right=arr.length-1;
while(left<right){
while(arr[left]%2!=0){
left++;
}
if(arr[left]%2==0){
temp=arr[left];
}
while(arr[right]%2==0){
right--;
}
if(left<right&&arr[right]%2!=0){//交换
arr[left]=arr[right];
arr[right]=temp;
}
}
return arr;
}
public static void main(String[] args){
int[] arr={1,4,7,2,5,3,6,6};
toChang(arr);
System.out.print(Arrays.toString(arr));
}
}
2、二分查找(要注意的是:是在有序的数组下进行的)
public class Exerse1{
public static boolean binarySearch(int[] arr,int a){
int first=0;
int end=arr.length-1;
int mid1;
while(first<=end){
mid1=(end-first)/2+first;
if(a<arr[mid1]){
end=mid1-1;
}
else if(a>arr[mid1]){
first=mid1+1;
}
else{
return true;
}
}
return false;
}
public static void main(String[] args) {
int[] arr = new int[] {12, 23, 34, 45, 56, 67, 77, 89, 90};
Arrays.sort(arr);
boolean bool = binarySearch(arr,10);
System.out.print(bool);
}
}
3、输出100到200间的素数
public class Exerse1{
public static void main(String[] args) {
for (int i = 100; i <= 200; i++) {
boolean flag = true;
for (int j = 2; j < i; j++) {
if (i % j == 0) {
flag = false;
break;
}
}
if(!flag){
continue;
}
System.out.println(i + "是质数");
}
}
}
4、用递归去实现1+2+...+100
public class Exerse1{
public static int sum(int n){
if(n==0)
return 0;
if(n==1)
return 1;
else{
int num=sum(n-1)+n;
return num;
}
}
public static void main(String[] args){
int a=sum(100);
System.out.print(a);
}
}
5、斐波那契数列
法一:循环(1 1 2 3 5 8 13 21)
public class Exerse1{
public static int[] fiBoNacci(int[] arr){
for(int i=2;i<arr.length;i++){
arr[i]=arr[i-1]+arr[i-2];
}
return arr;
}
public static void main(String[] args){
int[] arr=new int[8];
arr[0]=1;
arr[1]=1;
int[] brr=fiBoNacci(arr);
System.out.println(Arrays.toString(brr));
}
}
法二 1 1 2 3 5 8 13 21 34 55
public class Exerse1{
public static void main(String[] args){
int n1=1;
int n2=1;
int next=0;
System.out.print(n1+" "+n2+" ");
for(int i=0;i<8;i++){
next=n1+n2;
System.out.print(next+" ");
n1=n2;
n2=next;
}
}
}
法三
public class Exerse1{
public static int fiBoNacci(int n){
if(n==1||n==2){
return 1;
}
int i=1,j=1,sum=0;
for(int z=3;z<=n;z++){
sum=i+j;
i=j;
j=sum;
}
return sum;
}
public static void main(String[] args){
System.out.println(fiBoNacci(7));
}
}
法四:递归
法四:递归,输出的是第几位上的数
public class Exerse1{
public static int fiBoNacci(int n){
if(n==1||n==2){
return 1;
}
else{
return fiBoNacci(n-1)+fiBoNacci(n-2);
}
}
public static void main(String[] args){
System.out.println(fiBoNacci(7));
}
}