字符快速排序

import java.util.Scanner;

public class charSort{
	static void kuaiSu(char[] a,int left,int right)				//字符快速排序
	{
	    int f,l,r;
	    char t;

	    l=left;
	    r=right;
	    f=a[(left+right)/2];
		while(l<r)
		{
	        while(a[l]<f) ++l;
	        while(a[r]>f) --r;
	        if(l<=r)
	        {
				t=a[l];
		        a[l]=a[r];
	    	    a[r]=t;
	        	++l;
				--r;
			}
	    }
	    if(l==r)
			l++;
	    if(left<r)
		{
			kuaiSu(a,left,l-1);					//递归调用
		}

	    if(l<right)
		{
			kuaiSu(a,r+1,right);				//递归调用
		}
	}
	public static void main(String[] args)
	{
		char[] str=new char[80];
		int N;

		System.out.print("输入一个字符串:");
		Scanner input=new Scanner(System.in);
		str=input.next().toCharArray();							//输入字符串

		N=str.length;

		System.out.print("排序前:\n");
		System.out.println(str);				//输出

		kuaiSu(str,0,N-1);							//排序

		System.out.print("排序后:\n");
		System.out.print(str);				//输出

	}

}
时间: 2024-11-18 08:00:24

字符快速排序的相关文章

字符二分快速查找

import java.util.Scanner; /** * * @author luozhonghua * */ public class charSearchAndSort { static void kuaiSu(char[] a,int left,int right) //字符快速排序 { int f,l,r; char t; l=left; r=right; f=a[(left+right)/2]; while(l<r){ while(a[l]<f) ++l; while(a[r]

C语言实现选择排序、冒泡排序和快速排序的代码示例_C 语言

选择和冒泡 #include<stdio.h> void maopao(int a[],int len){ int i,j,temp; for(i = 0;i < len - 1 ; i ++){//从第一个到倒数第二个 for (j = 0 ; j < len - 1 - i ; j ++)//排在后的是已经排序的 { if (a[j] > a[j + 1])//大的数换到后面去 { temp = a[j]; a[j] = a[j + 1]; a [j + 1] = tem

C语言使用stdlib.h库函数的二分查找和快速排序的实现代码_C 语言

快速排序: 复制代码 代码如下: #include <stdlib.h>#include <stdio.h>#include <string.h> #define LENGTH(x) sizeof(x)/sizeof(x[0]) /**输出数组元素*\param arr:指向数组的指针*\param len:数组元素的个数*/void print(char (*arr)[10],int len){    int i;    for (i=0;i<len;i++) 

C#快速排序疑惑

问题描述 如图所示,此算法将1000万个中最大的1000数排序消耗时间是2000+ms,有更快的排序算法吗?请附完整代码,谢谢!usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespace快速排序Bata2{usingSystem;publicstaticclassProgram{publicstaticvoidMain(){S

C语言的冒泡排序和快速排序算法使用实例_C 语言

冒泡排序法 题目描述:     用一维数组存储学号和成绩,然后,按成绩排序输出. 输入:     输入第一行包括一个整数N(1<=N<=100),代表学生的个数.     接下来的N行每行包括两个整数p和q,分别代表每个学生的学号和成绩. 输出:     按照学生的成绩从小到大进行排序,并将排序后的学生信息打印出来.     如果学生的成绩相同,则按照学号的大小进行从小到大排序. 样例输入:     3     1 90     2 87     3 92 样例输出:     2 87    

数据排序谁最快(javascript中的Array.prototype.sort PK 快速排序)_javascript技巧

但是让我感到意外的是,下面有个网友回复说,javascript中的Array本身的sort方法才是最快的,比快速排序算法都快,当时看到了很是郁闷,因为当时花了好长时间在排序算法上,居然忘记了Array本身的sort方法 不过javascript中内置的sort方法真的比快速排序算法还快吗? 哈哈,测试一下不就知道了 先说一下我测试的环境 1,我的测试环境是IE6.0和firefox2.0 2,每种算法有很多种不同的实现方法,下面测试中我选择上面网友实现的快速排序算法,只是把内嵌函数搬到了外面 3

Python检测字符串中是否包含某字符集合中的字符

  这篇文章主要介绍了Python检测字符串中是否包含某字符集合中的字符,需要的朋友可以参考下 目的 检测字符串中是否包含某字符集合中的字符 方法 最简洁的方法如下,清晰,通用,快速,适用于任何序列和容器 代码如下: def containAny(seq,aset): for c in seq: if c in aset: return True return False 第二种适用itertools模块来可以提高一点性能,本质上与前者是同种方法(不过此方法违背了Python的核心观点:简洁,清

Python字符和字符值(ASCII或Unicode码值)转换方法

  这篇文章主要介绍了Python字符和字符值(ASCII或Unicode码值)转换方法,即把字符串在ASCII值或者Unicode值之间相与转换的方法,需要的朋友可以参考下 目的 将一个字符转化为相应的ASCII或Unicode码,或相反的操作. 方法 对于ASCII码(0~255范围) 代码如下: >>> print ord('A') 65 >>> print chr(65) A 对于Unicode字符,注意仅接收长度为1的Unicode字符 代码如下: >&

解决Win7系统中IE8浏览器搜索栏无法输入字符的问题

在Win7系统中,IE8.0浏览器的提供了地址栏及搜索栏功能,地址栏输网址而搜索栏我们可以用来快速搜索,相信都是大家必用的功能,而最近有些用户反馈打开IE后在搜索栏中无法输入任何字符,导致不无搜索不能打文字,这可怎么办呢. 下面的方法就能解决你的问题: 1.Win7系统上,使用Win+R键调出运行对话框,然后在运行窗口中输入Regedit命令,打开注册表编辑器. 2.接着在注册表上依次展开HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / Windows /