快速排序

快速排序的思想依据是分治法,选取第一个元素为对比值,然后将表中比对比值小的放在左边,将对比值大的放在右边,然后再将左边的列表用同样的方法进行排列,将右边的方法进行排列,依次递归下去,最终有序。下面列出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-四种面试常考排序相关推荐

  1. java double 数组排序_java四种数组排序

    数组的四种排序 1.快速排序法Arrays.sort(); 用法1.sort(byte[] a) 对指定的 byte 型数组按数字升序进行排序. sort(byte[] a, int fromInde ...

  2. java 文件比较_java 四种写文件比较

    import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import ja ...

  3. mysql排序的四种方式

    mysql排序的四种方式 第一种,默认排序 第二种,field函数排序 第三种,条件排序 第四种,多重条件排序 第一种,默认排序 按照 order by 字段1 desc/asc, 字段2 desc/ ...

  4. 遇到这四种面试官,接了 Offer 你可能会后悔

    作者 | Sean Ye 来源 | 瞎说职场(ID:HRInsight) 之前,一个童鞋来问: 面试的时候感觉和领导很不对路,本以为 offer 没戏了,谁知道公司还是开了 offer.这家公司知名度 ...

  5. java的四种访问权限_Java四种访问权限

    一.访问权限简介 访问权限控制: 指的是本类及本类内部的成员(成员变量.成员方法.内部类)对其他类的可见性,即这些内容是否允许其他类访问.Java 中一共有四种访问权限控制,其权限控制的大小情况是这样 ...

  6. java 获取包路径_java获取java文件路径的四种方法

    java获取java文件路径的四种方法 发布时间:2020-04-17 11:03:45 来源:亿速云 阅读:750 作者:小新 今天小编给大家分享的是java获取java文件路径的四种方法,很多人都 ...

  7. JAVA中的引用四种引用类型

    关于值类型和引用类型的话题,C++.JAVA.python.go.C#等等高级语言都有相关的概念,只要理解了其底层工作原理,可以说即使是不同的语言,在面试学习工作实践中都可以信手拈来(不要太纠集语言) ...

  8. java创建多线程的四种方式

    java多线程的创建方式是面试经常会被问到的一个问题,因此在这里我对java创建多线程的四种方式做一个简单的归纳与总结,便于复习. 一.继承Thread类创建多线程 ① 创建一个继承于Thread类的 ...

  9. Java 实现多线程的四种方式 超详细

    Java 实现多线程的四种方式 文章目录 Java 实现多线程的四种方式 一.继承 Thread 类 二.实现 Runnable 接口 三.实现 Callable 接口 四.线程池 1,Executo ...

  10. 详解Java解析XML的四种方法

    http://developer.51cto.com  2009-03-31 13:12  cnlw1985  javaeye  我要评论(8) XML现在已经成为一种通用的数据交换格式,平台的无关性 ...

最新文章

  1. 《强化学习周刊》第25期:DeepMind提出无模型风险敏感强化学习、谷歌发布 RLDS数据集生态系统...
  2. spring--(14)利用注解建立bean与bean之间的关系
  3. VMware虚拟机打开后不兼容
  4. Android与Linux以及GNU的关系
  5. Angular的_zone.onMicrotaskEmpty最终会通过changeDetect重新刷新视图
  6. Linux 命令之 unrar -- 解压 rar 格式的文件
  7. PKU 1061 青蛙的约会
  8. 【Flink】Flink PipelineExecutor 体系
  9. 安卓listview点击空白事件_要权限才给用?安卓毒瘤APP滚蛋吧!
  10. python中时间的加n和减n运算
  11. ad软件画pcb方法总结_AD软件中导入BRD的PCB文件总结分享,,,,
  12. 2014年9月16日----暴风影音笔试题
  13. struts2 国际化 中文乱码英文不乱码问题
  14. 法制晚报记者采访王杰律师就“给女主播“添麻烦”方静亮相 间谍传言不攻自破 ”发表法律评论
  15. linux deepin配置优化:解决deepin v20.5不能自动降频导致CPU风扇一直狂转吹热气的问题
  16. 【信号与系统】如何求系统的冲激响应和阶跃响应
  17. 微信网页Audio自动播放(IOS安卓)
  18. 计算机专业毕设程序题目,你想做php/java/net的程序的题目都在这里面。
  19. 谷歌语言设置_如何设置您的Google主页以使用两种语言
  20. 笔记本WIN10 网络和Internet WLAN选项消失

热门文章

  1. 怎么让打印出来表格的纸下面显示页数_4个使用频率较高的Excel打印技巧,办公室打印文件时常常会用到!...
  2. python的开发环境包括_下搭建 Python 开发环境
  3. java udp包_基于UDP协议的数据包收发程序(代码+报告)Java
  4. python argparse_Python 命令行之旅——初探 argparse
  5. cad无法加载arx文件_CAD文件损坏?无法打开?试试这8个方法吧
  6. 计算机组成材质,计算机组成原理及应用期末复习材料
  7. PostgreSQL 12系统表(1)pg_class
  8. Java 并发编程之 LockSupport
  9. IFIX 6.0 安全登录
  10. Linux手动指定ip地址