java面试排序_Java-四种面试常考排序
快速排序
快速排序的思想依据是分治法,选取第一个元素为对比值,然后将表中比对比值小的放在左边,将对比值大的放在右边,然后再将左边的列表用同样的方法进行排列,将右边的方法进行排列,依次递归下去,最终有序。下面列出java实现
package arithmetic;
/**
* Created by elijahliu on 2017/3/2.
*/
public class QuickSort {
int a[] = {49,37,65,97,76,13,27,49,78};
public QuickSort(){
quickSort(a,0,a.length-1);
for (int i:a
) {
System.out.print(i+" ");
}
}
public int getMiddle(int[] list,int low,int high){
int temp = list[low];
while (low < high) {
while (low < high && list[high] >= temp) {
high--;
}
list[low] = list[high];
while (low < high && list[low] <= temp) {
low++;
}
list[high] = list[low];
}
list[low] = temp;
return low;
}
public void _quickSort(int[] list, int low, int high) {
if (low < high) {
int mid = getMiddle(list, low, high);
_quickSort(list, low, mid - 1);
_quickSort(list, mid + 1, high);
}
}
public void quickSort(int[] list, int low, int high) {
if (list.length > 0) {
_quickSort(list, low, high);
}
}
public static void main(String[] args) {
new QuickSort();
}
}
直接插入排序
直接插入排序的算法思想:从第二个元素开始,如果比前面的元素都小,那么就将前面的元素往后移一位,然后把自己的值放到前面的位置上,最终由小到大排列。
java实现
package arithmetic;
/**
* Created by elijahliu on 2017/3/2.
*/
public class InsertSort {
public InsertSort(){
insertSort();
}
int a[] = {49, 38, 65, 97, 76, 13, 27, 49};
public void insertSort(){
int temp = 0;
for(int i = 1;i
temp = a[i];
int j = i - 1;
for(;j>=0&&temp
a[j + 1] = a[j];
}
a[j + 1] = temp;
}
for (int i:a
) {
System.out.println(i+" ");
}
}
public static void main(String[] args) {
new InsertSort();
}
}
冒泡排序
最简单的冒泡排序,大一就学过了
package arithmetic;
/**
* Created by elijahliu on 2017/3/2.
*/
public class BubbleSort {
public BubbleSort() {
bubbleSort();
}
int a[] = {49, 38, 65, 97, 76, 13};
public void bubbleSort() {
int temp = 0;
for (int i = 0; i < a.length - 1; i++) {
for (int j = 0; j < a.length - 1 - i; j++) {
if (a[j] > a[j + 1]) {
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
for (int i : a
) {
System.out.println(i + "");
}
}
public static void main(String[] args) {
new BubbleSort();
}
}
简单选择排序
算法思想:选取第一个作为标准值,然后对比后面的数,选取一个最大的,与第一个进行交换,position用于标记最大的数的位置。然后选择第二个数为标准值,然后依次进行下去。
package arithmetic;
/**
* Created by elijahliu on 2017/3/2.
*/
public class SelectSort {
int a[] = {1, 54, 6, 3, 78, 34, 12, 45};
public SelectSort() {
seletctSort();
}
public void seletctSort() {
int position = 0;
for (int i = 0; i < a.length; i++) {
position = i;
int temp = a[i];
for (int j = i + 1; j < a.length; j++) {
if (a[j] > temp) {
temp = a[j];
position = j;
}
}
a[position] = a[i];
a[i] = temp;
}
for (int i : a
) {
System.out.print(i + " ");
}
}
public static void main(String[] args) {
new SelectSort();
}
}
java面试排序_Java-四种面试常考排序相关推荐
- java double 数组排序_java四种数组排序
数组的四种排序 1.快速排序法Arrays.sort(); 用法1.sort(byte[] a) 对指定的 byte 型数组按数字升序进行排序. sort(byte[] a, int fromInde ...
- java 文件比较_java 四种写文件比较
import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import ja ...
- mysql排序的四种方式
mysql排序的四种方式 第一种,默认排序 第二种,field函数排序 第三种,条件排序 第四种,多重条件排序 第一种,默认排序 按照 order by 字段1 desc/asc, 字段2 desc/ ...
- 遇到这四种面试官,接了 Offer 你可能会后悔
作者 | Sean Ye 来源 | 瞎说职场(ID:HRInsight) 之前,一个童鞋来问: 面试的时候感觉和领导很不对路,本以为 offer 没戏了,谁知道公司还是开了 offer.这家公司知名度 ...
- java的四种访问权限_Java四种访问权限
一.访问权限简介 访问权限控制: 指的是本类及本类内部的成员(成员变量.成员方法.内部类)对其他类的可见性,即这些内容是否允许其他类访问.Java 中一共有四种访问权限控制,其权限控制的大小情况是这样 ...
- java 获取包路径_java获取java文件路径的四种方法
java获取java文件路径的四种方法 发布时间:2020-04-17 11:03:45 来源:亿速云 阅读:750 作者:小新 今天小编给大家分享的是java获取java文件路径的四种方法,很多人都 ...
- JAVA中的引用四种引用类型
关于值类型和引用类型的话题,C++.JAVA.python.go.C#等等高级语言都有相关的概念,只要理解了其底层工作原理,可以说即使是不同的语言,在面试学习工作实践中都可以信手拈来(不要太纠集语言) ...
- java创建多线程的四种方式
java多线程的创建方式是面试经常会被问到的一个问题,因此在这里我对java创建多线程的四种方式做一个简单的归纳与总结,便于复习. 一.继承Thread类创建多线程 ① 创建一个继承于Thread类的 ...
- Java 实现多线程的四种方式 超详细
Java 实现多线程的四种方式 文章目录 Java 实现多线程的四种方式 一.继承 Thread 类 二.实现 Runnable 接口 三.实现 Callable 接口 四.线程池 1,Executo ...
- 详解Java解析XML的四种方法
http://developer.51cto.com 2009-03-31 13:12 cnlw1985 javaeye 我要评论(8) XML现在已经成为一种通用的数据交换格式,平台的无关性 ...
最新文章
- 《强化学习周刊》第25期:DeepMind提出无模型风险敏感强化学习、谷歌发布 RLDS数据集生态系统...
- spring--(14)利用注解建立bean与bean之间的关系
- VMware虚拟机打开后不兼容
- Android与Linux以及GNU的关系
- Angular的_zone.onMicrotaskEmpty最终会通过changeDetect重新刷新视图
- Linux 命令之 unrar -- 解压 rar 格式的文件
- PKU 1061 青蛙的约会
- 【Flink】Flink PipelineExecutor 体系
- 安卓listview点击空白事件_要权限才给用?安卓毒瘤APP滚蛋吧!
- python中时间的加n和减n运算
- ad软件画pcb方法总结_AD软件中导入BRD的PCB文件总结分享,,,,
- 2014年9月16日----暴风影音笔试题
- struts2 国际化 中文乱码英文不乱码问题
- 法制晚报记者采访王杰律师就“给女主播“添麻烦”方静亮相 间谍传言不攻自破 ”发表法律评论
- linux deepin配置优化:解决deepin v20.5不能自动降频导致CPU风扇一直狂转吹热气的问题
- 【信号与系统】如何求系统的冲激响应和阶跃响应
- 微信网页Audio自动播放(IOS安卓)
- 计算机专业毕设程序题目,你想做php/java/net的程序的题目都在这里面。
- 谷歌语言设置_如何设置您的Google主页以使用两种语言
- 笔记本WIN10 网络和Internet WLAN选项消失
热门文章
- 怎么让打印出来表格的纸下面显示页数_4个使用频率较高的Excel打印技巧,办公室打印文件时常常会用到!...
- python的开发环境包括_下搭建 Python 开发环境
- java udp包_基于UDP协议的数据包收发程序(代码+报告)Java
- python argparse_Python 命令行之旅——初探 argparse
- cad无法加载arx文件_CAD文件损坏?无法打开?试试这8个方法吧
- 计算机组成材质,计算机组成原理及应用期末复习材料
- PostgreSQL 12系统表(1)pg_class
- Java 并发编程之 LockSupport
- IFIX 6.0 安全登录
- Linux手动指定ip地址