一、冒泡排序

1、原理:相邻元素两两比较,大的往后放。第一次完毕,最大值在最大索引处。

即使用相邻的两个元素一次比价,依次将最大的数放到最后。

2、代码:

public static void bubbleSort(int[] arr) {
for(int x=0; x<arr.length-1; x++) { //外层循环控制轮数 ,一共要比较(arr.length-1)轮
for(int y=0; y<arr.length-1-x; y++) { //外层循环控制每一轮比较的次数,每一轮比较(arr.length-1-i)次
if(arr[y] > arr[y+1]) { //如果前面的元素比后面的元素大,则交换位置
int temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
}
}
}
}

二、选择排序

1、原理 :将0位置的元素依次和后面全部的元素比,比完后,0位置就是最小的元素,紧接着从1位置对后面的元素比,逐步得到从小到大的值。

即用每一个元素,与其他元素一次比较,一次将最小的数放到最前面。

2、代码:

 public static void selectionSort(int[] arr){
for(int i=0;i<arr.length;i++){ //外层循环控制用哪个位置的数与后面的数比较
for (int j=i+1;j<arr.length;j++){ // 内层循环控制这个数与后面的数需要比较多少次
if(arr[i]>arr[j]) { // //这个条件保证从小到大排列,反之从大到小排列
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}

三、快速排序

1、原理:

  (1)先从数列中取出一个数作为key值

  (2)将比这个数小的数全部放在它的左边,大于或等于它的数全部放在它的右边

  (3)对左右两个小数列重复第二步,直至各区间只有1个数。

2、代码

public static void quickSort(int a[], int left, int right) {
if (left >= right) { //若果左边的指针大于右边的指针,直接跳出
return;
} int low = left; //定义左指针
int high = right; //定义右指针
int key = a[left];//选择第一个数为key while (low < high) { while (low < high && a[high] >= key)//从右向左找第一个小于key的值
high--;
if (low < high) {
a[low] = a[high];
low++;
} while (low < high && a[low] < key)//从左向右找第一个大于key的值
low++; if (low < high) {
a[high] = a[low];
high--;
}
}
//当low == high时
a[low] = key;
quickSort(a, left, low - 1);//递归调用
quickSort(a, low + 1, right);//递归调用
}

参考链接:

(1)8大排序算法图文详解:

http://www.jianshu.com/p/e6ad4423efcd

(2)8大排序算法Python版:

http://www.jianshu.com/p/7d037c332a9d

(3)8大排序算法Java版:

http://www.jianshu.com/p/ae97c3ceea8d

常见排序算法总结(java版)的更多相关文章

  1. 常见排序算法(附java代码)

    常见排序算法与java实现 一.选择排序(SelectSort) 基本原理:对于给定的一组记录,经过第一轮比较后得到最小的记录,然后将该记录与第一个记录的位置进行交换:接着对不包括第一个记录以外的其他 ...

  2. 常见排序算法(JS版)

    常见排序算法(JS版)包括: 内置排序,冒泡排序,选择排序,插入排序,希尔排序,快速排序(递归 & 堆栈),归并排序,堆排序,以及分析每种排序算法的执行时间. index.html <! ...

  3. 常见排序算法总结 -- java实现

    常见排序算法总结 -- java实现 排序算法可以分为两大类: 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序. 线性时间 ...

  4. 常见排序算法(java实现)

    常见排序算法介绍 冒泡排序 代码: public class BubbleSort { public static void sort(int[] array) { int tValue; for ( ...

  5. 几种常见排序算法之Java实现(插入排序、希尔排序、冒泡排序、快速排序、选择排序、归并排序)

    排序(Sorting) 是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个关键字有序的序列. 稳定度(稳定性)一个排序算法是稳定的,就是当有两个相等记录的关 ...

  6. 几种常见排序算法的java实现

    一.几种常见的排序算法性能比較 排序算法 最好时间 平均时间 最坏时间 辅助内存 稳定性 备注 简单选择排序 O(n^2) O(n^2) O(n^2) O(1) 不稳定 n小时较好 直接插入排序 O( ...

  7. 常见排序算法及Java实现

    先上个总图↓: ①.直接插入排序 插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法.它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并 ...

  8. 面试常用算法总结——排序算法(java版)

    排序算法 重要性不言而喻,很多算法问题往往选择一个好的排序算法往往问题可以迎刃而解 1.冒泡算法 冒泡排序(Bubble Sort)也是一种简单直观的排序算法.它重复地走访过要排序的数列,一次比较两个 ...

  9. 排序算法(java版)

    一直想理解一下基本的排序算法,最近正好在搞java所以就一并了(为了便于理解,这儿都是以从小到大排序为目的) 冒泡排序 也就是比较连续的两个值,如果前面一个值大于后面一个值,则交换. 时间复杂度为O( ...

  10. 经典排序算法(Java版)

    1.冒泡排序 Bubble Sort 最简单的排序方法是冒泡排序方法.这种方法的基本思想是,将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻,从而要往上浮.在冒泡排序算法中我们要对这个“气泡” ...

随机推荐

  1. Linux下通过管道杀死所有与tomcat相关的进程

    先将正确的命令放上来: ps -ef | grep ps -ef将系统中运行的进程展示出来 选择带有tomcat的进程后同时去除自身带有grep的进程,毕竟本身运行的这条命令是与tomcat相关的 a ...

  2. 重启随机游走算法(RWR:Random Walk with Restart)

    1 pagerank算法的基本原理 Pagerank算法是Google的网页排名算法,由拉里佩奇发明.其基本思想是民主表决.在互联网上,如果一个网页被很多其他网页所链接,说明它受到普遍的承认和信赖,那 ...

  3. [HTML5] 颜色选择器的操作[input type='color'....]

    一.点击事件和获取颜色值 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...

  4. 顺序表[A+B->A]

    题目:表A 1  3  5,表B 2 4 6,都呈非递减排序,现将两个表合并成一个表,也呈非递减排序,存放在A中(或者B中),言外之意是不能开辟新表!拿出B中数据,沿着A的后面一直往前比较,如果小于就 ...

  5. android的消息处理机制(图文+源码分析)—Looper/Handler/Message[转]

    from:http://www.jb51.net/article/33514.htm 作为一个大三的预备程序员,我学习android的一大乐趣是可以通过源码学习google大牛们的设计思想.andro ...

  6. AFNetworking网络请求数据

    //创建AFNetworking的请求操作    AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWit ...

  7. input.php

    <?php /** * */ class Input { function get($index = NULL, $xss_clean = FALSE) { if($index == NULL ...

  8. 第84讲:Scala中List和ListBuffer设计实现思考

    今天来学习了scala中的list和ListBuffer scala list 内部很多操作是listbuffer做的,因为改变元素,listbuffer非常高效,tl是var类型的  ,但是他属于s ...

  9. 本地Git与github连接/上传配置

    参照:http://www.runoob.com/w3cnote/git-guide.html 一.本地与githup连接配置1.本地创建ssh key: $ ssh-keygen -t rsa -C ...

  10. spring boot 整合 mybatis 以及原理

    同上一篇文章一样,spring boot 整合 mybatis过程中没有看见SqlSessionFactory,sqlsession(sqlsessionTemplate),就连在spring框架整合 ...