快速排序 java实现
来源:互联网 发布:维棠flv mac 编辑:程序博客网 时间:2024/06/07 15:30
<span style="font-size:18px;">package com.sunny.sort;/** * quick sort * @author panzha * 快速排序思想,选取一个数作为基准,一般选第一个,然后把数组分为2块,这个基准数字右边的都比这个数大,左边的都比这数小 */public class Demo001 {public static void main(String[] args) {//Integer s[] = new Integer[]{72,6,57,88,60,42,83,73,48,85};Double s[] = new Double[]{72.5,6.8,57.8,88.2,60.3,42.0,8.23,7.13,48.2,85.9};sort(s,0,s.length-1);print_data(s);}public static <T extends Comparable<T>>void sort(T s[],int h,int r){if(h<r){int i = quick_sort(s,h,r);sort(s,0,i-1);sort(s,i+1,r);}}//实现一次的快速排序public static <T extends Comparable<T>> int quick_sort(T s[],int h,int r){int i = h,j=r;T X = s[h];while(i<j){/* * 从右边开始,查找第一个比X小的数,然后填坑 */while(i<j && s[j].compareTo(X)>=0){//加上i<j这个判断,不然产生了数组越界错误j--;}s[i] = s[j];//用s[j]把s[i]这个坑填了/* * 从左边开始,查找第一个比X大的数 */while(i<j&&s[i].compareTo(X)<=0){i++;}s[j] = s[i];//用是s[i],把s[j]这个坑填了}s[i] = X;return i;}public static <T>void print_data(T s[]){for (T i : s) {System.out.print(i+" ");}}}</span>
0 0
- java实现快速排序
- 快速排序Java实现
- 快速排序java实现
- 快速排序JAVA实现
- Java实现快速排序
- 快速排序--Java实现
- 快速排序java实现
- java实现快速排序
- java实现快速排序
- Java实现快速排序
- Java实现快速排序
- 快速排序java实现
- 快速排序Java实现
- Java实现快速排序
- java快速排序实现
- JAVA实现快速排序
- java实现快速排序
- java 实现快速排序
- NOIP复习-001——快速排序
- LeetCode---Intersection of Two Linked Lists
- 【July程序员编程艺术】之现场编写类似strstr/strcpy/strpbrk的函数
- windows上mysql的完全卸载
- Mac OSx下的APK反编译
- 快速排序 java实现
- java对象的内存布局
- HDU 2680 最短路
- IOS中 Block简介与用法(一)
- iperf测试吞吐量
- frameset下frame控制兄弟框架的显示与隐藏
- Android开发中需要注意的几点
- 集合 --- List
- RGB颜色表颜色 与 GdkColor 的对应关系