java是一门面向对象的语言,有封装、继承和多态三大特性。在初级课程中我们的重点是java在容器,IO流,以及jdbc中的应用(此外还有冒泡法,以及随机数等)。
首先还是先提一下冒泡法,毕竟这个也是经常作为笔试题出现的。
package com.bjsxt.struts.action;
/**
*获取键盘6个整数,对其进行排序 (倒序)
*思路:1、Scanner nextInt()
2、冒泡
*/
import java.util.Scanner;
public class BubbleSortExam{
public static void main(String[] args){
int[] arr=new int[6];
System.out.println("请输入6个整数");
storeArr(arr);
System.out.println("排序前:"+printDim(arr));
sortArrDesc(arr); //引用
System.out.println("排序后:"+printDim(arr));
}
/**
*获取6个整数 -->存放数组中
*/
public static void storeArr(int[] arr){
//使用内置类,建立于键盘的连接
Scanner sc=new Scanner(System.in);
for(int i=0;i<arr.length;i++){
System.out.println("请输入:"+"第"+(i+1)+"个整数");
arr[i]=sc.nextInt();
}
}
/**
*使用冒泡排序
*/
public static void sortArrDesc(int[] arr){
boolean flag=true;
for(int i=0;i<arr.length-1;i++){ //趟数
flag=true; //默认有序
for(int j=0;j<arr.length-1-i;j++){ //次数
if(arr[j]<arr[j+1]){ //降序 交换
arr[j]=arr[j]+arr[j+1];
arr[j+1]=arr[j]-arr[j+1];
arr[j]=arr[j]-arr[j+1];
flag=false;
}
}
if(flag){ //有序,不用下一趟
break;//跳出循环
}
}
}
/**
*输出一维数组的内容
*/
public static String printDim(int[] arr){
String str="[";
for(int i=0;i<arr.length;i++){
str+=arr[i];
if(i<arr.length-1){
str+=",";
}
}
str+="]";
return str;
}
}
冒泡的精髓其实是在sortArrDesc方法中,相比原始的排序(原始版本趟数与次数相同)已经经过两重优化,我们可以想象一副水中冒泡的场景,肯定是大泡泡不断向上,小泡泡在下,假设数组中有五个数,经优化后第一趟比较4次,第二趟只要3次,第三趟两次,第四趟一次。其次,我们还在方法中加入flag标签,如果一趟比较下来,数组已经是有序的,那么就不用比了,直接跳出方法(这对于本身就是有序的数组,可以提高效率)。
分享到:
相关推荐
个人初级会计实务第二章总结
本资料"**C++初级总结练习大全**"正是为帮助C++初学者巩固基础而设计的一系列练习题。 首先,我们要理解C++的基础知识。C++是由C语言发展而来,它增加了面向对象编程(OOP)的概念,如类、对象、封装、继承和多态性...
标日初级总结笔记JDBC学习总结笔记.pdf
初级标日上1-12课助词总结
《新标准日本语初级知识点总结》是一份针对日语初学者的宝贵资料,它涵盖了初级阶段的核心知识,旨在帮助对日语有兴趣的学习者系统地掌握基础日语。这份压缩包包含两部分:上册1-24课和下册25-48课,分别对应了初级...
"自用"的标签表明这是个人的学习资料,可能是某位学习者整理的个人笔记或者是对教材内容的补充与总结。 在日语学习中,语法是理解和运用语言的关键部分,它规定了词汇如何组合成句子,以及句子如何表达不同的意思。...
日本语初级总结笔记.rar
为了符合您的要求,我将提供关于“初级会计实务会计分录总结”的相关知识点,希望能对您有所帮助。 会计分录是会计工作中的基础技能,它是使用会计语言描述经济活动和财务信息的方式。初级会计实务中会计分录的总结...
【初级程序员学习计划总结】 作为初级程序员,学习是持续不断的过程,尤其在快速发展的IT行业中。这个阶段的学习目标主要是巩固基础知识,提升技能,并逐步适应实际工作需求。以下是一个结合了公司实训课程特点的...
初级语法总结(标准日本语初级上(下册)).docx
经过一个月的学习,对学习进行了笔记性的总结,并依据总结及历年考试,进行了“重点总结”,形成了此文档。 --- 此文档对有基础的同鞋有帮助,无基础的可能形同天书,请绕行。
【日语初级语法总结】 日语作为一门独特的语言,其语法结构对于初学者来说具有一定的挑战性。以下是一些初级阶段需要掌握的关键语法点: 1. **动词转换** - **简体与敬体**:日语动词分为简体和敬体,简体用于...
初级会计职称考试 初级《经济法 》 总结 复习效率更高
这篇总结涵盖了SQL Server初级阶段的关键概念,包括数据库基础、SQL语言、表的管理、数据操作以及数据库安全性和完整性。 首先,SQL(Structured Query Language)是用于与关系型数据库交互的语言,SQL Server则是...
总结了大大小小的一些经验,并写了在面试中比较常问的问题及答案,对于求职测试工程师的还是有一定的帮助
以上是针对初级运维工程师面试题的一些关键知识点详解,涵盖Linux启动、Apache工作模式、LVS负载均衡、Oracle备份、文件系统管理、Apache虚拟主机配置以及系统监控等多个方面。在面试中,理解这些概念的原理和实际...
"通信专业实务初级和通信专业综合能力初级重点" 本资源摘要信息涵盖了通信专业实务初级和通信专业综合能力初级的重点知识点,包括电信网概述、固定电话网、分组交换网和数字数据网等方面的内容。 电信网概述: * ...
BSW总结(初级)
【标题】:“初级测试员学习必备很也是我的笔记总结” 这篇文档集合了初级软件测试员在学习过程中应掌握的关键知识点,结合了我在达内培训期间的学习资料,包含了名牌讲师的精彩PPT内容,旨在帮助初学者系统性地...