栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【零基础学Java】第七天 冒泡排序和杨辉三角(详解)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【零基础学Java】第七天 冒泡排序和杨辉三角(详解)

前言

1.双非在校大学生,想通过自学Java进大厂

2.给跟我一样的大学生分享我的经历,和学习资源

3.本版块将会记录从Java入门到就业的所有学习笔记和资源

4.我还会分享我在学习Java中遇到的各种问题和各种解决方法

今天学习两道在初学编程时经典题,冒泡排序和杨辉三角,理解这两道题,会对一维数组和二维数组有更深的理解。

1.冒泡排序
public class BubbleSort{
	public  static void main(String [] args){
  //  55 45 33 23 12 用最坏情况举例
  //  45 33 23 12 55 第一轮   比较了4次 
  //  33 23 12 45 55 第二轮   比较了3次 
  //  23 12 33 45 55 第三轮   比较了2次
  //  12 23 33 45 55 第四轮   比较了1次   
  //  总结:轮数 = 数据的个数减1,比较次数 = 数据个数-比较的轮数
  //  但我们还发现当数据并不是完全无序时,会出现重复比较的操作。
  //  为了优化排序的效率,我们可以设置一个标志来判断,上一轮比较是否发生交换,若没有发生交换就提前结束程序。     
    int [] arry = {55,45,33,23,12};
    boolean flag = true ;
	   for(int i = 0 ; i < arry.length-1; i++){//比较的轮数
           if(flag==false) break;

	   	 for(int j =0; j < arry.length -1-i ; j++){//每一轮比较的次数,注意这里i是从0开始,所以要减去1
	   		 flag = false;
	   		if(arry[j+1] < arry[j]){
	   		flag =true;
	   		int temp = arry[j];
	   	    arry[j] = arry[j+1];
	   	    arry[j+1] = temp;
	        }

	   	 }
	   }
	 for (int i=0;i 
2.杨辉三角 
//经过分析可以发现
//1.行数等于那一行的数的个数
//2.每一行的第一个和最后一个数都为1
//3.从第三行开始,非第一个和非最后一个数都等于上一行这一列的数加上上一行前一列的数。
import java.util.Scanner;
public class YangHui{
	public static void main(String []args){
		Scanner inputline = new Scanner (System.in);
		System.out.println("请输入你要输出的杨辉三角的行数:");
		int line = inputline.nextInt();
		//动态创建一个二维数组
		int [][] arry = new int [line][];
		for(int i=0;i < arry.length;i++){
			//分配每一行的内存空间
			arry[i] = new int [i+1];

			for(int j=0;j < arry[i].length;j++){
             //每一行的第一个数和最后一个数是1
 				if(j==0||j==arry[i].length-1){

					arry[i][j] = 1;
				}
				else{
			//其他数都是上一行的前列的的数和本列的数之和
					arry[i][j]=arry[i-1][j]+arry[i-1][j-1];
				}
			}
		}
     for(int i=0;i
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/820999.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号