一、请写出n!的算法。
package digui;
/**
*author:bingbing
*日期:2020年2月27日
*时间:下午3:21:14
*/
public class Demo01 {
/**
* 写出n!算法
*/
public static void main(String[]args) {
int n=5;
int result=count(n);
System.out.println("结果为:"+result);
}
private static int count(int n) {
if(n<0) {
System.out.println("输入错误!");
return -1;
}else if(n==1 ||n==2) {
return n;
}else {
return n*count(n-1);
}
}
}
结果为:120
二、写一个排序算法,将10个1-100的随机数字进行排序
使用选择排序算法实现10个1-100随机数字的排序。
基本思想: 从第一个元素开始,后面的元素与之比较,如果后面的元素比它小,则将后面的元素交换位置放到前面去,直到换到最后一个元素为止。
package digui;
/**
*author:bingbing
*日期:2020年2月27日
*时间:下午3:49:15
*/
public class Demo02 {
/**
* 使用选择排序排序一个数组 5 ,7 ,2,8,9,1,4,6,3,0
*/
public static void main(String[]args) {
int[] num= new int [10];
for(int i=0;i<10;i++) {
num[i]=(int) (Math.random()*10);
}
selectSort(num);
for(int i=0;i<num.length;i++) {
System.out.println(num[i]);
}
}
private static void selectSort(int[] num) {
// TODO Auto-generated method stub
for(int i=0;i<num.length;i++) {
//先记住i的位置
int m=i;
for(int j=i+1;j<num.length;j++) {
if(num[j]<num[m]) {
m=j;
}
}
if(i!=m) {
swap(num,i,m);
}
}
}
private static void swap(int[] num, int i, int m) {
int t;
t=num[i];
num[i]=num[m];
num[m]=t;
}
}
打印结果:0 0 2 3 4 4 6 6 7 7
该算法的时间复杂度为o()
三、 冒泡排序
使用JAVA语言实现冒泡排序
基本思想: 相邻元素两两比较,每次比较完毕后,将大的数往右移,小的数往左移,比较完n-1次后,即可完成排序。
package suanfa;
/**
*author:bingbing
*日期:2020年2月27日
*时间:下午4:25:42
*/
public class Demo03 {
/**
* 冒泡排序,相邻元素之间两两比较5 ,7 ,2,8,9,1,4,6,3,0
*
* 第一次结果为: 5,2,7,8,1,4,6,3,0,9
* 第二次结果为: 2,5,7,1,4,6,3,0,8,9
* 第三次结果为: 2,5,1,4,6,3,0,7,8,9
* 第四次结果为: 2,1,4,5,3,0,6,7,8,9
* 第五次结果为: 1,2,4,3,0,5,6,7,8,9
* 第六次结果为: 1,2,3,0,4,5,6,7,8,9
* 第七次结果为: 1,2,0,3,4,5,6,7,8,9
* 第八次结果为: 1,0,2,3,4,5,6,7,8,9
* 第九次结果为: 0,1,2,3,4,5,6,7,8,9
*/
public static void main(String[]args) {
int[] num= {5 ,7 ,2,8,9,1,4,6,3,0};
bubbleSort1(num);
for(int i=0;i<num.length;i++) {
System.out.print(num[i]+" ");
}
System.out.println();
}
private static void bubbleSort1(int[] num) {
// TODO Auto-generated method stub
for(int i=0;i<num.length;i++) {
for(int j=0;j<num.length-1-i;j++) {
if(num[j]>num[j+1]) {
int temp;
temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
}
}
}
}
}
结果: 0 1 2 3 4 5 6 7 8 9