用Java 写一个冒泡排序

用Java 写一个冒泡排序冒泡排序几乎是个程序员都写得出来,但是面试的时候如何写一个逼格高的冒泡排序却不是每个人都能做到,下面提供一个参考代码:importjava.util.Comparator;/***排序器接口(策略模式:将算法封装到具有共同接口的独立的类中使得它们可以相互替换)*/publicinterfaceSorter{ /** *排序 *@paramlist待排序的数组 */ public<TextendsComparable<T>>voids

大家好,又见面了,我是你们的朋友全栈君。

冒泡排序几乎是个程序员都写得出来,但是面试的时候如何写一个逼格高的冒泡排序却不是每个人都能做到,下面提供一个参考代码:

import java.util.Comparator;
/** * 排序器接口(策略模式: 将算法封装到具有共同接口的独立的类中使得它们可以相互替换) */

public interface Sorter { 
   
	/** * 排序 * @param list 待排序的数组 */
	public <T extends Comparable<T>> void sort(T[] list);
	/** * 排序 * @param list 待排序的数组 * @param comp 比较两个对象的比较器 */
	public <T> void sort(T[] list, Comparator<T> comp);
}


import java.util.Comparator;
/** * 冒泡排序 */
public class BubbleSorter implements Sorter { 
   
	@Override
	public <T extends Comparable<T>> void sort(T[] list) { 
   
		boolean swapped = true;
		for (int i = 1, len = list.length; i < len && swapped; ++i) { 
   
			swapped = false;
				for (int j = 0; j < len - i; ++j) { 
   
					if (list[j].compareTo(list[j + 1]) > 0) { 
   
						T temp = list[j];
						list[j] = list[j + 1];
						
						list[j + 1] = temp;
						swapped = true;
					}
				}
			}
		}
		
		@Override
		public <T> void sort(T[] list, Comparator<T> comp) { 
   
			boolean swapped = true;
			for (int i = 1, len = list.length; i < len && swapped; ++i) { 
   
				swapped = false;
				for (int j = 0; j < len - i; ++j) { 
   
					if (comp.compare(list[j], list[j + 1]) > 0) { 
   
						T temp = list[j];
						list[j] = list[j + 1];
						list[j + 1] = temp;
						swapped = true;
					}
				}
			}
		}
	}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/156362.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 解决微信小程序errcode:40029[通俗易懂]

    解决微信小程序errcode:40029[通俗易懂]第一次接触微信小程序,喜提errcode:40029errmsg:”invalidcode,hints:[req_id:6HfBbZyFe-8y]场景:写完接口之后前端联调一直500,最后发现是获取的时候微信报错了。解决办法:导入项目的时候appid要填入你请求session_key的appid,如图所示(我这个开发者工具是旧版的)还有一种解决方法是其他文章找…

  • C++下截取字符串「建议收藏」

    C++下截取字符串「建议收藏」std::string::substrstringsubstr(size_tpos=0,size_tlen=npos)const;功能:按照条件截取字符串参数:pos=截取起始位      len=截取长度用法1:截取下标从2(第3个字符)开始到字符串结尾的字符串stringstr=”ABCDEFG”;str

  • java 104规约_电网104规约解包(java)「建议收藏」

    java 104规约_电网104规约解包(java)「建议收藏」【实例简介】电网104规约解包java代码项目是围绕电网规约101规约(DL/T634.5101-2002)和104规约(DL/T634.5104-2009),项目基于Java语言。可以完成规约的内容解析工作和组装工作。可用于实际场景的把发送报文的生成等工作。【文件目录】101_104规约解析├──LICENSE├──README.md├──docs│├──附件1:广东电网配网自动…

  • Mac上VSCode删除整行快捷键

    Mac上VSCode删除整行快捷键command+x

  • java soa是什么_如何通俗易懂地解释什么是SOA?

    java soa是什么_如何通俗易懂地解释什么是SOA?对于SOA,感觉这个概念性的东西没那么容易理解,看了各位大神的解释感觉很多都说的很抽象,所以想尝试用自己的语言解释下,仅做参考。SOA粗暴理解:把系统按照实际业务,拆分成刚刚好大小的、合适的、独立部署的模块,每个模块之间相互独立。比如现我有一个数据库,一个JavaWeb(或者PHP等)的网站客户端,一个安卓app客户端,一个IOS客户端。现在我要从这个数据库中获取注册用户列表,如果不用SOA的设计…

  • [Halcon&标定] 单相机标定「建议收藏」

    [Halcon&标定] 单相机标定「建议收藏」为什么要进行单相机标定?广义:畸变矫正和一维和二维测量1)畸变矫正:    在几何光学和阴极射线管(CRT)显示中。畸变是对直线投影的一种偏移。简单来说直线投影是场景内的一条直线投影到图片上也保持为一条直线。那畸变简单来说就是一条直线投影到图片上不能保持为一条直线了。这是一种光学畸变(opticalaberration)。畸变是一种相差…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号