实验一、求最大公因数
public class Z{
public static void main(String[] args){
int m=12345;
int n=6789;
int factor=1;
for(int i=2;i<=m&&i<=n;i++){
while(m%i==0&&n%i==0){
factor=factor*i;
m=m/i;n=n/i;
}
}
System.out.println("最大公因数为"+factor);
}
}
class A{
int m=12345;
int n=12340;
int r=m%n;
do{
m=n;
n=r;
r=m%n;
}while(r!=0);
System.out.println(n);
}
实验二、快速排序、冒泡排序
import java.util.Random;
import java.util.Arrays;
//快速排序n=1000
public class Qsort {
public static void main(String[] args) {
Random random = new Random();
int[] arr=new int[1000];
for (int i=0;i<1000;i++) {
arr[i] =random.nextInt(1000);
}
quickSort(arr,0,arr.length-1);
System.out.println(Arrays.toString(arr));
}
public static void quickSort(int a[],int l,int r){//l:left r:right
if(l>=r){
return;
}
int i = l;
int j = r;
int key = a[(l+r)/2];
int index=0;//计数器
while(i<j){
while(i<j && a[j]>=key){
j--;
}
if(i<j){
a[i] = a[j];
i++;
}
while(i<j && a[i]<key){
i++;
}
if(i<j){
a[j] = a[i];
j--;
}
index+=1;
}
a[i] = key;
quickSort(a, l, i-1);
quickSort(a, i+1, r);
System.out.println("index="+index);
}
}
import java.util.Random;
//1000个随机数的冒泡排序,数组实现
public class Himiko{
public static void main(String[] args){
int temp=0;//冒泡排序的辅助变量
int index=0;//循环次数
Random random = new Random();
int[] a=new int[1000];
for (int i=0;i<1000;i++) {
a[i] =random.nextInt(1000);
}
for(int i=0;i<1000;i++){
for(int j=0;j<999-i;j++){
if(a[j]>a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
index+=1;
}
}
}
System.out.println("n=1000,执行次数为"+index);
for(int i=0;i<1000;i++){
System.out.print(a[i]+"\t");
}
}
}