zoukankan      html  css  js  c++  java
  • 对字符串进行快速排序(即字符数组排序)

    package com.cn.gao;
    
    import java.util.Scanner;
    
    //对字符串进行快速排序
    public class CharsQuickSort {
        public static final int SIZE=100;  //可以输入的最大字符数
        //快速排序的一次划分
        public static int charsPartition(char a[], int left, int right){
            int l,r;
            char temp;
            l=left;
            r=right;
            temp=a[l];            //首元素作为分界值
            while(l<r){
                while(a[r]>temp&&l<r){
                    r--;
                }
                if(l<r){
                    a[l]=a[r];
                    l++;
                }
                while(a[l]<temp&&l<r){
                    l++;
                }
                if(l<r){
                    a[r]=a[l];
                    r--;
                }
            }
            a[l]=temp;
            return l;
        }
        //字符串排序的快速排序算法
        public static void charsQuickSort(char a[], int left, int right){
            int p;
            if(left<right){
                p = charsPartition(a,left,right);
                charsQuickSort(a,left,p-1);
                charsQuickSort(a,p+1,right);
            }
        }
        public static void main(String[] args) {
            char a[] = new char[SIZE];
            System.out.print("请输入一个待排序的字符串:");
            Scanner input = new Scanner(System.in);
            a = input.next().toCharArray();
            System.out.println("排序前:");
            System.out.println(a);
            //排序
            charsQuickSort(a,0,a.length-1);
            System.out.println("排序后:");
            System.out.println(a);
        }
    
    }
  • 相关阅读:
    青岛理工大学邀请赛总结
    HDU 1232 并查集/dfs
    HDU 1556
    HDU 5228
    POJ1011
    线段树(数组实现)
    NOIP2008 普及组T1 ISBN号码 解题报告-S.B.S.
    NOIP2008 普及组T4 立体图 解题报告-S.B.S.(施工未完成)
    noip2008普及组4题题解-rLq
    noip2008普及组3题题解-rLq
  • 原文地址:https://www.cnblogs.com/gaopeng527/p/4485156.html
Copyright © 2011-2022 走看看