其实每个程序员都应该或多或少的知道几个排序的算法,这是考察基本功的地方,排序的算法有很多种,像冒泡排序、快速排序、归并排序等等,个人觉得自己的基本功还是有太多的地方需要加强的地方,月末了回头看一下,平常用的东西,还有很多没有及时总结和归纳,实属于懒惰,今天简单写一个基本的快速排序,督促自己应该及时总结与学习新知识,废话说多了有个卵用!
package test;
import java.util.Arrays;
public class Test{
public static void quickSort(int[]a,int low, int high){
int i = low;
int j = high;
int t ;
while(i != j){
while(a[i] <a[j]) i++;
if(i < j){
t = a[i];
a[i] = a[j];
a[j] = t;
}
while(a[j] > a[i]) j--;
if(i < j){
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
if(i > 0){
quickSort(a, 0, i-1);
}
if(i < high){
quickSort(a, i+1, high);
}
}
public static void main(String[] args) {
int[] a = {4,33,2,-1,44,5,8};
quickSort(a, 0, a.length-1);
System.out.println(Arrays.toString(a));
}
}
打印结果:[-1, 2, 4, 5, 8, 33, 44]