自己总结了一下快速排序算法及思想:
package main.com.xia.test3; import java.util.Arrays; public class Answer1{ public static void main(String[] args){ int[] test2 = new int[]{10,1,2,9,6,3,7,8,4,5}; quickSort(0,test2.length - 1,test2); System.out.println(Arrays.toString(test2)); } public static void quickSort(int start,int end,int[] array){ if(start < end){ int partion = getPosition(start,end,array); quickSort(start,partion,array); quickSort(partion + 1,end,array); } } public static int getPosition(int start,int end,int[] array){ int tmp = array[start]; while(start < end){ //从数组右面开始寻找一个比tmp小的值。 while(start < end && array[end] >= tmp){ end--; } array[start] = array[end]; //从数组右面开始寻找一个比tmp小的值。 while(start大家仔细观察getPosition()的内容是不是很面熟。不错和普通的交换算法很相似
public static int getPosition(int start,int end,int[] array){ int tmp = array[start]; while(start < end){ //从数组右面开始寻找一个比tmp小的值。 while(start < end && array[end] >= tmp){ end--; } array[start] = array[end]; //从数组右面开始寻找一个比tmp小的值。 while(start 如果把函数中的while循环注释掉,方法就变成了。public static int getPosition(int start,int end,int[] array){ int tmp = array[start]; // while(start < end){ //从数组右面开始寻找一个比tmp小的值。 // while(start < end && array[end] >= tmp){ // end--; // } array[start] = array[end]; //从数组右面开始寻找一个比tmp小的值。 // while(start普通冒泡算法:截图
快速排序从右面选择基数算法:package Java多线程编程核心技术.chapter7; import java.util.Arrays; public class Answer1{ public static void main(String[] args){ int[] test2 = new int[]{10,1,2,9,6,3,7,8,4,5}; quickSort(0,test2.length - 1,test2); System.out.println(Arrays.toString(test2)); } public static void quickSort(int start,int end,int[] array){ if(start < end){ int partion = getPosition(start,end,array); quickSort(start,partion -1,array); quickSort(partion ,end,array); } } public static int getPosition(int start,int end,int[] array){ int tmp = array[end]; while(start < end){ //从数组左面开始寻找一个比tmp大的值。 while(start < end && array[start] <= tmp){ start++; } array[end] = array[start]; //从数组右面开始寻找一个比tmp小的值。 while(start= tmp){ end--; } array[start] = array[end]; } array[end] = tmp; return start; } } 欢迎分享,转载请注明来源:内存溢出
评论列表(0条)