第一个快速排序算法(从小到大排序,java实现)

//java类
QuickSort 
public class QuickSort {
    //main方法(增加main方法是为了验证结果),main方法是java程序的入口方法,jvm在运行时首先查找main方法  public static void main(String[] args) {
        //实例化类new一个对象  QuickSort str = new QuickSort();
        //qwrplkjhgffdsazcbnm  String s="qwrplkjhgffdsazcbnm";
        //使用java封装好的方法把string转换成char数组  char[] cs1 = s.toCharArray();
        //求字符数组的长度  int sl = cs1.length-1;
          //使用new的str对象调用QuickSort类的排序方法并输出  System.out.println(str.SortString(cs1,0,sl));
    }
    //字符串排序方法  public String SortString(char [] cs,int low,int high){
              //定义数组地位和高位角标变量  int l=low;
                int h=high;
                //将低位数组值赋给povit变量  char povit=cs[low];
         //以下while实现一次排序,第一次后前面是比cs[low]小的字符,后面都是比cs[low]大的字符  while(l<h)
                {
                    //从后往前查找如果高位数组值大于povit 则高位角标数减一  while(l<h&&cs[h]>=povit)
                         h--;
              //如果高位数组值小于povit&脚标l小于h则将l和h的数组值交换  if(l<h){
                char temp=cs[h];
                    cs[h]=cs[l];
                     cs[l]=temp;
                     l++;
                    }
                    //高位比较交换一次后,从前往后查询,如果低位数组值小于povit则l加一  while(l<h&&cs[l]<=povit)
                    l++;
                  //如果低位数组值大于povit&脚本l<h则将l和h的数值值交换  if(l<h){
                char temp=cs[h];
                 cs[h]=cs[l];
                  cs[l]=temp;
                   h--;
                    }
                  }

           //打印第一次排序交换的内容  System.out.print("l="+(l+1)+"h="+(h+1)+"povit="+povit+"\n");
        //低位分组递归实现快速比较  if(l>low)SortString(cs,low,l-1);
             //高位分组递归实现快速排序  if(h<high)SortString(cs,l+1,high);
            //转换数据类型  String ss = "";
            //将数组中的char字符拼接成字符串  for (char c : cs) {
// System.out.println(c);  ss += c;
            }

            //返回字符串结果  return ss;

    }


}
    原文作者:排序算法
    原文地址: https://blog.csdn.net/qq_31391261/article/details/79470384
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞