1.冒泡排序
package com.xue.boke;
import java.util.Arrays;
import java.util.Scanner;
/**
* 2018/12/8
* @author xqp
*按从大到小将输入的值冒泡排序:
*/
public class Sort {
public static void sort(){
Scanner input = new Scanner(System.in);
int sort[] = new int[10];
int temp;
System.out.println("请输入10以逗号结尾的数据例如1,2,3...:");
String s1 = input.nextLine();
String[] s2 = s1.split(",");
for(int i = 0;i< sort.length;i++){
sort[i] = Integer.parseInt(s2[i]);
}
for(int i = 0;i < sort.length - 1;i++){
for(int j = 0;j<sort.length-i-1;j++){
if(sort[j]<sort[j+1]){
temp = sort[j];
sort[j] = sort[j+1];
sort[j+1] = temp;
}
}
}
System.out.println("排序后的顺序为:");
System.out.println(Arrays.toString(sort));
for(int i = 0;i<sort.length;i++){
System.out.print(sort[i]+" ");
}
}
public static void main(String[] args) {
sort();
}
}
结果:
2.二分法查询指定元素所在位置:
package com.xue.boke;
/**
* 二分法查询指定元素的位置
* @author xqp
*
*/
public class Dichotomy {
public static int getPos(int[] A,int n,int val){
int low = 0 , high = n - 1 , mid;
if(n == 0 || A == null)
return -1;
while(low <= high){
mid = (low + high) /2;
if(val == A[mid]){
for(int j = mid ;j >= 0; j-- ){
if(A[j] != A[mid]){
mid = j + 1;
break;
}
else if(A[j] == A[mid]){
mid = j;
continue;
}
}
return mid;
}else if(val < A[mid])
high = mid -1;
else
low = mid + 1;
}
return -1;
}
public static void main(String[] args) {
int A[] = {1,25,25,25,45,55,68,69,130};
int val = 69;
int n = A.length;
int result = getPos(A,n,val);
System.out.println("结果为:"+result);
}
}
结果:
3.水仙花问题
package com.xue.boke;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
/**
* 水仙花数问题:
* @author xqp
*
*/
public class Narcissistic {
public static void main(String[] args) {
Scanner san = new Scanner(System.in);
System.out.println("请输入min值:");
int min = san.nextInt();
System.out.println("请输入max值:");
int max = san.nextInt();
List<Integer> list = new ArrayList<>();
for(int mid = min ; mid < max ; mid++){
int a = mid/100;
int b = mid%10;
int c = mid%100/10;
int sum = a*a*a + b*b*b + c*c*c;
if(sum == mid){
list.add(sum);
}
}
System.out.println("您所输入的三位数当中有"+list.size());
System.out.println("个水仙花数,他们是"+list.toString());
}
}
结果:
4.斐波那契数列(新生兔子问题)
package com.xue.boke;
/**
* 斐波那契数列(新生兔子序列):
*
*/
public class Fibonacci {
/**
* 传统方法
*/
public static int fun1(int M){
int f1 = 1,f2 = 1,f;
for(int i = 3;i<=M;i++){
f = f2;
f2 = f1 +f2;
f1 = f;
}
return f2;
}
/**
* 递归做法
*/
public static int fun2(int M){
if(M == 1 || M == 2){
return 1;
}else{
return fun2(M - 1) + fun2(M - 2);
}
}
public static void main(String[] args) {
System.out.println("第24个月一共有"+fun1(24)+"只兔子");
System.out.println("第24个月一共有"+fun2(24)+"只兔子");
}
}
结果:
5.打印乘法口诀
package com.xue.boke;
/**
* 打印乘法口诀
*/
public class Multiplication {
public static void main(String[] args) {
for(int i = 1;i<=9;i++){
for(int j = 1; j<=i;j++){
System.out.print(i+"*"+j+"="+i*j+" ");
}
System.out.println();
}
}
}
结果: