常用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. Jquery和Javascript 实际项目中写法基础-弹出窗和弹出层 (4)

     一.实际项目中有很多如下界面效果.    二.该效果可以归结为弹出窗或者弹出层来实现的,为什么这么说?看如下代码:      <!DOCTYPE html> <html> & ...

  2. 第一次用Axure~

    刚刚接触axure感觉好多不会呢~但是一步一步来吧~ 操作到后来发现字体的变化很奇怪,总是只有一个字体出现,只有在编辑时才出现我设定的字体. 但最后还是有个样子出来了~做了一个联系的新页面 最后学姐又 ...

  3. C#获得网卡信息 NetworkInterface IPInterfaceProperties

    System.Net.NetworkInformation下的 1:NetworkInterface类,提供网络适配器的配置和统计信息. 可以通过它检测本机配置了多少网卡,哪些网络连接可用,获得网卡的 ...

  4. c++ 泛型编程及模板学习

    泛型编程,英文叫做Generic programming 可以理解为,具有通用意义的.普适性的,编程. 比如,你要实现一个函数去比较两个数值的大小,数值可能是int或者string.初次尝试,我们直观 ...

  5. extjs4_msg

    经过一早上的努力,终于成功显示了ext.msg.alert("somestring")!一个漂亮的对话框,呵呵 真的是感想挺多,收获也很多的.主要是: 一.用Wamp在win7下搭 ...

  6. coreData部分报错:This NSPersistentStoreCoordinator has no persistent stores.

    最近在修改一个程序BUG的时候遇到一个问题coreData部分报错:This NSPersistentStoreCoordinator has no persistent stores. 但实际跑程序 ...

  7. ubuntu14.04 下emacs 24 配置

    目的: 配置emacs 24 适合编程开发 主要参考JerryZhang的配置(Emacs 简易教程) http://www.perfect-is-shit.com/emacs-simple-tuto ...

  8. LintCode Sort Colors

    For this problem we need to sort the array into three parts namely with three numbers standing for t ...

  9. textarea自适应高度

    最近做项目遇见了这个自适应高度的问题,也在网上找了些资料,大多选择用DIV模拟textarea,但是这样就有安全性的问题,因为你是可以直接将HTML代码输入进去的. 接下来介绍的这种办法是采用两个te ...

  10. IOS 二维码的实现

    1.首先导入Coreimage框架. //创建滤镜对象 CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator&quo ...