首页 文章 精选 留言 我的

精选列表

搜索[Java],共10000篇文章
优秀的个人博客,低调大师

JAVA写一个冒泡排序

一:实现思想: 基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。 二:实现代码: 1 package bulubulu; 2 3 public class Maopao { 4 private static int [] a={12,64,5,4,62,99,98,54,56,17,18,23,34,15,35,25,53,51}; 5 static int temp=0;//一个临时存放点 6 public static void main(String[] args) { 7 for (int i = 0; i < a.length; i++) { 8 for (int j = 0; j < a.length; j++) { 9 if(a[j]>a[i]){//相邻的两个数依次进行比较,如果先改变正序或反序,可以改变大小于 10 temp=a[j]; 11 a[j]=a[i];//在三行进行一个值的移动替换 12 a[i]=temp; 13 } 14 } 15 } 16 for (int i = 0; i < a.length; i++) { 17 System.out.println(a[i]); 18 } 19 } 20 } 冒泡排序的优点:每进行一趟排序,就会少比较一次,因为每进行一趟排序都会找出一个较大值。如上例:第一趟比较之后,排在最后的一个数一定是最大的一个数,第二趟排序的时候,只需要比较除了最后一个数以外的其他的数,同样也能找出一个最大的数排在参与第二趟比较的数后面,第三趟比较的时候,只需要比较除了最后两个数以外的其他的数,以此类推……也就是说,没进行一趟比较,每一趟少比较一次,一定程度上减少了算法的量; 缺点:效率不高 (如果一个数组有n个数,那么排序完成后需要比较n*(n-1)/2次); 欢迎大家一起说出自己的想法。

优秀的个人博客,低调大师

JAVA中的设计模式三(策略模式)

问题: 如何让算法和对象分开来,使得算法可以独立于使用它的客户而变化? 方案: 把一个类中经常改变或者将来可能改变的部分提取出来,作为一个接口,然后在类中包含这个对象的实例,这样类的实例在运行时就可以随意调用实现了这个接口的类的行为。比如定义一系列的算法,把每一个算法封装起来, 并且使它们可相互替换,使得算法可独立于使用它的客户而变化。这就是策略模式。 适用情况: 许多相关的类仅仅是行为有异。 “策略”提供了一种用多个行为中的一个行为来配置一个类的方法。即一个系统需要动态地在几种算法中选择一种。当一个应用程序需要实现一种特定的服务或者功能,而且该程序有多种实现方式时使用。一个类定义了多种行为 , 并且这些行为在这个类的操作中以多个条件语句的形式出现。将相关的条件分支移入它们各自的Strategy类中以代替这些条件语句。 优点: 1、可以动态的改变对象的行为 缺点: 1、客户端必须知道所有的策略类,并自行决定使用哪一个策略类 2、策略模式将造成产生很多策略类 应用: 我们平时出行的方式:出行方式有很多种,具体用哪一种根据动态的选择; 首先创建我们的抽象行为类,和具体的行为类; 1 package strategy;//策略模式 2 3 //抽象的行为类 4 public interface Strategy { 5 public void go();//出行方式 6 } 7 8 9 10 11 package strategy; 12 13 public class ConcreteStrategy1 implements Strategy {//具体的出行方式 14 15 @Override 16 public void go() { 17 // TODO Auto-generated method stub 18 System.out.println("坐公交车!"); 19 } 20 21 } 22 23 24 25 26 27 package strategy; 28 29 public class ConcreteStrategy2 implements Strategy {//具体的出行方式 30 31 @Override 32 public void go() { 33 // TODO Auto-generated method stub 34 System.out.println("自驾车!"); 35 } 36 } 然后创建一个调用者,也就是使用者,把能使用的行为给导入进来; 1 package strategy; 2 3 public class Context {//环境类其实也就是一个调用类,出行的人 4 private Strategy s; 5 6 public Context(Strategy s) { 7 super(); 8 this.s = s; 9 } 10 public void operate(){ 11 s.go(); 12 } 13 } 最后就是进行出行了; 1 package strategy; 2 3 public class Test { 4 public static void main(String[] args) { 5 Context c =new Context(new ConcreteStrategy1()); 6 c.operate(); 7 8 c =new Context(new ConcreteStrategy2()); 9 c.operate(); 10 } 11 } 欢迎大家一起说出自己的想法。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册