常用Java排序算法

冒泡排序 、选择排序、快速排序

 package com.javaee.corejava;

 public class DataSort {

     public DataSort() {
// TODO Auto-generated constructor stub
} public static void main(String[] args) {
int[] p = { 34, 21, 54, 18, 23, 76, 38, 98, 45, 33, 27, 51, 11, 20, 79,
30, 89, 41 }; long start = System.currentTimeMillis(); DataSort.bubbleSort(p);// 冒泡排序
//DataSort.selectSort1(p);// 选择排序 1
//DataSort.selectSort2(p);// 选择排序2
//DataSort.quickSort(p, 0, p.length - 1);// 快速排序 System.out.println("所用时间:" + (System.currentTimeMillis() - start));
for (int i = 0; i < p.length; i++) {
System.out.print(p[i] + " ");
} }
//冒泡排序
public static void bubbleSort(int[] data){
for(int i=0;i<data.length-1;i++){
for(int j=0;j<data.length-i-1;j++){
if(data[j]>data[j+1]){
int temp=data[j];
data[j]=data[j+1];
data[j+1]=temp;
}
}
}
}
//选择排序1
public static void selectSort1(int[] data){
if(data==null||data.length==0){
return;
}
for(int i=0;i<data.length-1;i++){
int min=i;
for(int j=i+1;j<data.length;j++){
if(data[j]<data[min]){
min=j;
}
}
if(i!=min){
int temp=data[i];
data[i]=data[min];
data[min]=temp;
}
}
}
//选择排序2
public static void selectSort2(int[] data){
for(int i=0;i<data.length-1;i++){
for(int j=i+1;j<data.length;j++){
if(data[i]>data[j]){
int temp=data[i];
data[i]=data[j];
data[j]=temp;
}
}
}
}
//快速排序
public static void quickSort(int[] data,int start,int end){
int key=data[start];
int i=start;
int j=end;
while(i<j){
while(data[j]>key&&i<j){
j--;
}
data[i]=data[j];
while(data[i]<key&&i<j){
i++;
}
data[j]=data[i];
}
data[i]=key;
if(i-1>start){
quickSort(data,start,i-1);
}
if(i+1<end){
quickSort(data,i+1,end);
}
} }
 

常用Java排序算法的更多相关文章

  1. java SE 常用的排序算法

    java程序员会用到的经典排序算法实现 常用的排序算法(以下代码包含的)有以下五类: A.插入排序(直接插入排序.希尔排序) B.交换排序(冒泡排序.快速排序) C.选择排序(直接选择排序.堆排序) ...

  2. 常用的排序算法介绍和在JAVA的实现(二)

    一.写随笔的原因:本文接上次的常用的排序算法介绍和在JAVA的实现(一) 二.具体的内容: 3.交换排序 交换排序:通过交换元素之间的位置来实现排序. 交换排序又可细分为:冒泡排序,快速排序 (1)冒 ...

  3. (转)java 排序算法

    排序算法汇总(java实现,附源代码)   整理系统的时候发现了原来写的各种算法的总结,看了一下,大吃一惊,那时候的我还如此用心,具体的算法,有的已经模糊甚至忘记了,看的时候就把内容整理出来,顺便在熟 ...

  4. java排序算法(一):概述

    java排序算法(一)概述 排序是程序开发中一种非常常见的操作,对一组任意的数据元素(活记录)经过排序操作后,就可以把它们变成一组按关键字排序的一组有序序列 对一个排序的算法来说,一般从下面三个方面来 ...

  5. java排序算法(八):希尔排序(shell排序)

    java排序算法(八):希尔排序(shell排序) 希尔排序(缩小增量法)属于插入类排序,由shell提出,希尔排序对直接插入排序进行了简单的改进,它通过加大插入排序中元素之间的间隔,并在这些有间隔的 ...

  6. Java排序算法(二)

    java排序算法(二) 二.改进排序算法 2.1希尔排序 定义:希尔排序(ShellSort)是插入排序的一种.也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本.希尔排序是非稳定排序算法. ...

  7. JavaScript实现常用的排序算法

    ▓▓▓▓▓▓ 大致介绍 由于最近要考试复习,所以学习js的时间少了 -_-||,考试完还会继续的努力学习,这次用原生的JavaScript实现以前学习的常用的排序算法,有冒泡排序.快速排序.直接插入排 ...

  8. C#中常用的排序算法的时间复杂度和空间复杂度

    常用的排序算法的时间复杂度和空间复杂度   常用的排序算法的时间复杂度和空间复杂度 排序法 最差时间分析 平均时间复杂度 稳定度 空间复杂度 冒泡排序 O(n2) O(n2) 稳定 O(1) 快速排序 ...

  9. Java排序算法之直接选择排序

    Java排序算法之直接选择排序 基本过程:假设一序列为R[0]~R[n-1],第一次用R[0]和R[1]~R[n-1]相比较,若小于R[0],则交换至R[0]位置上.第二次从R[1]~R[n-1]中选 ...

随机推荐

  1. python27(32位)安装模块报错“error: Unable to find vcvarsall.bat”

    1)首先,下载一个Microsoft Visual C++ Compiler for Python 2.7的补丁,下载地址在这里: http://www.microsoft.com/en-us/dow ...

  2. Linux 路线 推荐

    1.<Linux程序设计>- 靠它来入门,然后装一个linux体系,练习shell(party)和linuxC,把基础打牢: 2. <深入理解Linux内核>和<Linu ...

  3. react native 之上传文件

    最近遇到react native中需要上传一些图片到后台.期间,找了一些第三方上传插件,感觉不太好用,要么只支持一个平台,要么会对其他第三方造成影响,实在无奈.只能直接使用fetch上传.其中上传文件 ...

  4. 数据结构与算法分析-AVL树

    1.AVL树是带有平衡条件的二叉查找树. 2.AVL树的每个节点高度最多相差1. 3.AVL树实现的难点在于插入或删除操作.由于插入和删除都有可能破坏AVL树高度最多相差1的特性,所以当特性被破坏时需 ...

  5. Swift----函数 、 闭包 、 枚举 、 类和结构体 、 属性

    1 数组排序 1.1 问题 本案例实现一个整型数组排序的函数,数组排序的规则由传递的规则函数决定. 1.2 方案 首先定义一个整型数组排序函数sortInts,该函数有一个整型数组类型的参数,该参数必 ...

  6. REDIS fdatasync技术问题和BIO技术的引入

    http://oldblog.antirez.com/post/fsync-different-thread-useless.html 这是原文作者的博客 把他翻译下 带上自己的一些理解 看看作者引入 ...

  7. Mac快捷键与命令学习

    最近开始使用mac air,以前从来没有接触过IOS系统,各种操作捉急.Mac快捷键相当多,遇到各种操作不会就只好百度,然后整理了一堆有用或者没用的命令,一股脑儿列在下面.其中有不少命令是和linux ...

  8. 使用dbms_scheduler包创建定时任务

    本文使用dbms_scheduler的create_job创建执行存储过程的定时任务 创建一个job job_type指定'STORED_PROCEDURE' job_action中填入要执行的存储过 ...

  9. Emgu学习手册

    作为opencv的c#封装库.emgu可以满足基本的图像处理功能,经过测试,效果还可以,主要用于windows窗体应用程序的开发,或者wpf,你可以用来做ocr,也可以用来做人脸识别或者可以用来做定位 ...

  10. fcitx error

    (ERROR-2016 /build/fcitx-J2yftF/fcitx-4.2.9.1/src/lib/fcitx/ui.c:165) no usable user interface.(ERRO ...