import java.util.Arrays;
import java.util.Scanner;
import javax.naming.ldap.SortControl;
import javax.sound.midi.MidiChannel;
import org.w3c.dom.ls.LSOutput;
/**功能;排序方法汇总
* @author Administrator
*思路; 1,array.sort
* 2. 选择排序
* 3,冒泡排序
* 4. 插入排序
*
* 6,归并排序
* 7,快速排序
* 8,希尔排序
*/
public class Demo1 {
/**
* @param args
*/
/*
* 7,快速排序
* 选择一个基准元素,通常选择第一个元素或者最后一个元素,
* 通过一趟扫描,将待排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素,
* 此时基准元素在其排好序后的正确位置,
* 然后再用同样的方法递归地排序划分的两部分。
*
* 1需要形参有开头start和结尾end
* 2.如果start < end就递归自己
* 3.把下标为0(也可以是其他下标)的值设为标准值 ,把开头和结束分别设置为低位(low)和高位(high)
* 4.当low<high时循环执行
* 1.(low<high时)高位的值大于标准值,把高位减一位,直到小于时把当前高位的值赋值给低位
* 2.(low<high时)低位的值小于标准值,把低位减一位,直到大于时把当前低位的值赋值给高位
* 5.执行完后此时的高位和低位相等,把标准值赋值给低位or高位的值 ,(low<high时)保证高位一定等于低位出循环
* 6.此时的数组分为(low右边)大于标准值和(low左边)小于标准值 ,然后分两边递归调用自己
* 7.直到start >= end(low >= high)不会递归下去
*/
public static void quikcsort(int a[],int low,int high){
if(low<high){
int middle = Middle(a,low,high);
//先递归处理比基准数小的左边的数
quikcsort(a, low, middle-1);
//再递归处理比基准数大的右边的数
quikcsort(a, middle+1, high);
}
}
public static int Middle(int a[],int low,int high){
int temp = a[low];
while(low < high){
while(low < high&&a[high
Java学习第十二天——排序算法(二)详解8种排序算法
最新推荐文章于 2024-06-03 20:03:58 发布
本文深入解析Java中的8种排序算法,包括冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序、希尔排序和桶排序。详细介绍了每种算法的工作原理、性能特点及适用场景,帮助Java学习者巩固排序算法的理解。
摘要由CSDN通过智能技术生成