JAVA经典算法40题(15)

来源:互联网 发布:淘宝怎么看无线端来源 编辑:程序博客网 时间:2024/05/01 10:49

【程序29】题目:求一个3*3矩阵对角线元素之和
1.程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。

Java代码 复制代码 收藏代码
  1. public class Ex29 {
  2. public static void main(String[] args){
  3. double sum=0;
  4. int array[][]={{1,2,3},{4,5,6},{7,7,8}};
  5. for(int i=0;i<3;i++)
  6. for(int j=0;j<3;j++){
  7. if(i==j)
  8. sum=sum + array[i][j];
  9. }
  10. System.out.println( sum);
  11. }
  12. }

【程序30】题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。

Java代码 复制代码 收藏代码
  1. import java.util.Random;
  2. public class ArraySort {
  3. public static void main(String[] args){
  4. int temp=0;
  5. int myarr[] = new int[12];
  6. Random r=new Random();
  7. for(int i=1;i<=10;i++)
  8. myarr[i]=r.nextInt(1000);
  9. for(int k=1;k<=10;k++)
  10. System.out.print(myarr[k]+",");
  11. for(int i=1;i<=9;i++)
  12. for(int k=i+1;k<=10;k++)
  13. if(myarr[i]>myarr[k]){
  14. temp=myarr[i];
  15. myarr[i]=myarr[k];
  16. myarr[k]=temp;
  17. }
  18. System.out.println("");
  19. for(int k=1;k<=10;k++)
  20. System.out.print(myarr[k]+",");
  21. myarr[11]=r.nextInt(1000);
  22. for(int k=1;k<=10;k++)
  23. if(myarr[k]>myarr[11]){
  24. temp=myarr[11];
  25. for(int j=11;j>=k+1;j--)
  26. myarr[j]=myarr[j-1];
  27. myarr[k]=temp;
  28. }
  29. System.out.println("");
  30. for(int k=1;k<=11;k++)
  31. System.out.print(myarr[k]+",");
  32. }
  33. }  
原创粉丝点击