java代码隐藏面消除算法,java常面的几种排序算法
冒泡排序
1、算法步骤:
1)比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
3)针对所有的元素重复以上的步骤,除了最后一个。
4)持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
2、代码
import java.util.Arrays;
/**
* 实现冒泡排序
* @author dell
*
*/
public class BubbleSort {
public static void main(String[] args) {
int[] arr = {1,200,19,55,10,22,3,7};
//API实现
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
//冒泡实现
int temp;
for(int i =0;i
for(int j = 0;j
if(arr[j]>arr[j+1]){
temp = arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
System.out.println(Arrays.toString(arr));
}
}
优化的冒泡排序
由于可能在前几次就已经排好序,但是在上一种冒泡排序中仍然需要一直遍历到最后。
优化措施:设置一个标志,如果这一趟发生了交换,则为true,否则为false。明显如果有一趟没有发生交换,说明排序已经完成。
package bubbleSort;
import java.util.Arrays;
import org.junit.Test;
/**
* 冒泡排序的性能分析和算法优化(外层循环优化)
* @author dell
*
*/
public class BubbeSort02 {
@Test
public void test1(){
boolean flag = true;
int[] arr = {2,1,3,4,5};
int temp;
for (int i = 0; i < arr.length-1; i++) {
for (int j = 0; j < arr.length-1-i; j++) {
if(arr[j]>arr[j+1]){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
flag=false;
}
}
if(!flag){
//没有发生交换则退出循环;
break;
}
}
System.out.println(Arrays.toString(arr));
}
}
选择排序
1、算法步骤:
1)首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置
2)再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
3)重复第二步,直到所有元素均排序完毕
2、代码
public static int[] ChoseSort(int[] a) {
for (int i=0;i
int lowIndex = i;
for (int j=i+1;j
if (a[j]
lowIndex=j;
}
}
int temp = a[i];
a[i] = a[lowIndex];
a[lowIndex] = temp;
}
return a;
}
public static void main(String[] args) {
int[] a = { 10, 20, 9, 2, 22, 49, 1 };
Arrays.sort(a);
System.out.println(Arrays.toString(a));
System.out.println("================");
int[] bubbleSort = ChoseSort(a);
System.out.println(Arrays.toString(bubbleSort));
}
java代码隐藏面消除算法,java常面的几种排序算法相关推荐
- 算法 | 快速搞定八种排序算法与代码实现
点击上方"阿拉奇学Java",选择"置顶或者星标" 每天早晨00点00分,与你相约! 往日回顾:不敢相信,相同 SQL 下 Mybatis 查询结果和数据库竟 ...
- Java常用的八种排序算法与代码实现
在Java的时候,对于排序的应用需要熟练的掌握,这样才能够确保Java学习时候能够有扎实的基础能力.那Java有哪些排序算法呢?本文小千就来详细说说Java经典的8种排序算法. 经典的排序算法有八种, ...
- Java常见的几种排序算法-插入、选择、冒泡、快排、堆排等
本文就是介绍一些常见的排序算法.排序是一个非常常见的应用场景,很多时候,我们需要根据自己需要排序的数据类型,来自定义排序算法,但是,在这里,我们只介绍这些基础排序算法,包括:插入排序.选择排序.冒泡排 ...
- java 算法 排序算法_Java七种排序算法以及实现
Java常见七种排序算法以及实现 最近学习一些排序算法,怕自己以后忘记就打算整理起来供自己复习 萌新一枚学习Java没多久,以下仅供参考.如有错误希望大佬指正,欢迎大家在评论区交流探讨. 1.冒泡排序 ...
- Java 八种排序算法比较实践
写这篇文章是因为面试时经常会问这个问题,但是工作中也没用到过,所以一直是一知半解.但是我是属于比较较真的人,这次下定决心要把它们搞明白.知识在于积累,多点知识对自己总是有好处的. 我比较好奇的是,这几 ...
- 排序算法java 简书_史上最全经典排序算法总结(Java实现)
查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中.因为其实现代码较短,应用较常见.所以在面试中经常会问到排序算法及其相关的问题.但万变不离其宗,只要熟悉了思想,灵活运用也不是难事.一般在 ...
- java实现apriori算法_七大经典、常用排序算法的原理、Java 实现以及算法分析
0. 前言 大家好,我是多选参数的程序员,一个正再 neng 操作系统.学数据结构和算法以及 Java 的硬核菜鸡.数据结构和算法是我准备新开的坑,主要是因为自己再这块确实很弱,需要大补(残废了一般) ...
- java中常用的几种排序算法--常见笔试面试
转载:http://blog.csdn.net/ygc87/article/details/7208082 以下列出Java中常用的几种排序算法,只是简单实现了排序的功能,还有待改进,望指教(以下均假 ...
- Java学习 第三章 数组(三)排序算法
** Java学习 第三章 数组(三)排序算法 ** 主要内容:排序算法.排序算法横向比较.Arrays工具类的使用.数组常见异常 1.数组中涉及到的常见算法:排序算法 1.1 排序算法分类:内部排序 ...
最新文章
- 三台机器之间root用户ssh互信配置
- 利用OpenCV进行边缘检测
- [原创] 浅谈ETL系统架构如何测试?
- Esp32-CAM(ESP32带camera)使用说明
- Cannot resolve the collation conflict between SQL_Latin1_General_CP1_CI_AS and Latin1_General_100...
- Ocelot中文文档入门
- FA_手工明细增加固定资产(流程)
- android png转灰度,Android提高之使用NDK把彩图转换灰度图的方法
- 错误整理:No plugin found for prefix 'jetty' in the current project and in the plugin groups
- Ionic生命周期与注意点
- c 语言ifelse语句例子,C if else 语句
- Android VelocityTracker简介
- 撒大飒飒撒大声地撒萨达
- java释放资源_JAVA 手动释放资源问题
- 生成的html怎么做成桌面背景,定时改换图片的桌面背景 html页面
- python 定时器、每天凌晨3点执行方法_python 定时器,实现每天凌晨3点执行的方法...
- ZBar源码分析(二)
- pdf加密怎么加?在线免费对PDF文档加密
- 设计模式-03(软件设计原则)
- 一直以来伴随我的一些学习习惯(四)——程序员的知识结构
热门文章
- oracle sequences优化_性能优化-Oracle RAC中的Sequence Cache问题
- python 表格格式输出_Python笔记---DAY3:格式化输出、for循环、列表操作
- tomcat 在WIN10 上运行出现500错误的解决方法
- H3C服务器系统配置ip,H3C交换机DHCP 服务器动态分配地址典型配置指导
- java daemon线程的作用_JAVA DAEMON线程的理解
- c#namespace
- java 匿名委托_委托,匿名方法,λ 表达式
- dxf转nc代码软件_Window绝赞的6款软件,效率加班党必备,快到惊人!
- 解决cannot import name ‘finance‘ from ‘matplotlib‘报错与问题解析
- Nginx 502报错(django+nginx,而非php-fmp)