排序之快速排序
来源:互联网 发布:中国移动宽带网络电视 编辑:程序博客网 时间:2024/05/20 19:05
package com.test.sort;/** * <Description> <br> * * @author liu.mingqing<br> * @version 1.0<br> * @taskId <br> * @CreateDate 2017年2月4日 <br> * @since V7.3<br> * @see com.test.sort <br> */public class QuickSort {/** * Description: <br> * * @author liu.mingqing<br> * @taskId <br> * @param args <br> */public static void main(String[] args) {Integer[] test = {305,65,7,90,120,110,8};quickSort(test,0,6);System.out.println(test.toString());}public static <T extends Comparable<T>> void quickSort(T[] data, int min, int max) {if (min < max) {int indexOfpartion = partion(data, min, max);quickSort(data,min,indexOfpartion);quickSort(data, indexOfpartion+1,max);}}/** * * Description: <br> * * @author liu.mingqing<br> * @taskId <br> * @param data * @param min * @param max <br> */public static <T extends Comparable<T>> int partion(T[] data, int min, int max) {int mid = (min+max)/2;T partionElement = data[mid];int first = min,last = max;swap(data,min,mid);while(first < last) {while (first < last && data[first].compareTo(partionElement) <= 0) {first++;}while (data[last].compareTo(partionElement) > 0) {last--;}if (first < last) swap(data,first,last);}swap(data,min,last);return last;}public static <T extends Comparable<T>> void swap(T[] data, int m, int n ) {if (m >= data.length || n >= data.length)return;T temp = data[m];data[m] = data[n];data[n] = temp;}}
0 0
- 排序之快速排序
- 排序之 快速排序
- 排序之快速排序
- 排序之------快速排序
- 排序之快速排序
- 排序之快速排序
- 排序之快速排序
- 排序之快速排序
- 排序之快速排序
- 排序之快速排序
- 排序之快速排序
- 排序之快速排序
- 排序之快速排序
- 排序之快速排序
- 排序之-----快速排序
- 排序之快速排序
- 排序之快速排序
- 排序之快速排序
- Linux 文件系统(部分)
- 【软件测试】UI和UE
- storm集成kafka报错org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for ...
- 金明的预算方案
- 宝宝无语了之结构体
- 排序之快速排序
- Kotlin的数据类:节省很多行代码(KAD 10)
- Building and booting Nexus 5 kernel
- 从Service启动Activity
- 排序之归并排序
- 欢迎使用CSDN-markdown编辑器
- Linux系统的安装
- Django create view
- PKI 公钥基础设施