给一堆字符串,求有多少种不同的排序,求公式 11个数字,3位排列,一共有多少种排列。给个公式。

作者&投稿:徐爽 (若有异议请与网页底部的电邮联系)

aabcdkss的排列共有 8!/(2!2!) 种不同的排列。

总字符个数是8个,其中相同的字符a有2个,s有2个。

#include "stdio.h"

#define N 10

main()

{

char a[N]=;

int i,j;

char ch;

for(i=0;i<N;i++)

for(j=i+1;j<N;j++)

if(a[i]>a[j])

{

ch=a[i];a[i]=a[j];a[j]=ch;

}

for(i=0;i<N;i++)

printf("%c ",a[i]);

}

扩展资料:

每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 

选择排序是不稳定的排序方法(很多教科书都说选择排序是不稳定的,但是,完全可以将其实现成稳定的排序方法)。

n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果:

①初始状态:无序区为R[1..n],有序区为空。

②第1趟排序

在无序区R[1..n]中选出关键字最小的记录R[k],将它与无序区的第1个记录R[1]交换,使R[1..1]和R[2..n]分别变为记录个数增加1个的新有序区和记录个数减少1个的新无序区。

参考资料来源:百度百科-排序



aabcdkss的排列共有 8!/(2!2!) 种不同的排列。

总字符个数是8个,其中相同的字符a有2个,s有2个。

排列的定义及其计算公式:从n个不同元素中,任取m(m≤n,m与n均为自然数,下同)个元素按照一定的顺序排成一列,叫做从n个不同元素中取出m个元素的一个排列;从n个不同元素中取出m(m≤n)个元素的所有排列的个数,叫做从n个不同元素中取出m个元素的排列数,用符号 A(n,m)表示。A(n,m)=n(n-1)(n-2)……(n-m+1)= n!/(n-m)! 此外规定0!=1(n!表示n(n-1)(n-2)...1,也就是6!=6x5x4x3x2x1)
组合的定义及其计算公式:从n个不同元素中,任取m(m≤n)个元素并成一组,叫做从n个不同元素中取出m个元素的一个组合;从n个不同元素中取出m(m≤n)个元素的所有组合的个数,叫做从n个不同元素中取出m个元素的组合数。用符号 C(n,m) 表示。C(n,m)=A(n,m)/m!;C(n,m)=C(n,n-m)。(n≥m)
其他排列与组合公式 从n个元素中取出m个元素的循环排列数=A(n,m)/m!=n!/m!(n-m)!. n个元素被分成k类,每类的个数分别是n1,n2,...nk这n个元素的全排列数为 n!/(n1!×n2!×...×nk!). k类元素,每类的个数无限,从中取出m个元素的组合数为C(m+k-1,m)。

排列组合呀

利用ASCII码 排序

"alibaba"这个字符串有多少种排序方法,方法是怎样的?~

A77 / (A22 * A33)

alibaba 3个a ,2个b,1个l,1个i

还有个答案是 C73*C42*A22

11乘10乘9

C语言用指针求10行字符串大到小排序 求大神帮我看看代码问题
答:include "stdio.h"#include <string.h>int main(int argc,char *argv[]){//void paixu(char *p);//看这里void paixu(char **p);printf("用指针方法写一函数对10个字符串按从大到小顺序排序\n");//char str[10][10],*p;//看这里char str[10][10],*p[10]={str[0],str[1],str[...

c语言中从键盘输入N个字符串,将字符串按从小到大的顺序排列并输出
答:代码如下:define N 10 int main(){char str[N][100]; int i,j; for(i = 0; i < N; i ++) scanf("%s",str[i]); for(i = 0; i < N-1; i ++) { for(j = i+1; j < N; j ++){ if(strcmp(str[i],str[j])>0) { char temp[100]; strcpy(temp,str[i]);...

输入一个长度为n的字符串,打印出所有该字符串的排列组合。哪位大佬能...
答:直至两者值不一样或者移动到头尾为止。计算机程序设计基础(1 C/C++)¥45.5 京东 购买 这里需要注意的一种情况是:如果声誉子串长度小于目前查找的最长回文子串的长度时,直接终止循环,因为即便这个时候剩下的字符串都是回文,其长度也是小于当前查找到的最长子串的。代码示例 本次内容就分享到这里...

全排列,组合(字符串或数字)字典序
答:组合 :每个字符在一个组合可出现也可不出现,所以对单个字符来说状态是0或1,0位不出现,1位出现。因此可以看做二进制代表的数字来实现组合的全部解析 全排列 递归方式: 主要用于字符串中 无重复 字符的排列问题,每个字符都出现在排列中,但是位置不同。保持第一个字符不变,将后面部分的字符...

java 输入十个字符串,排顺序的方式排列
答:String类中的compareTo()方法: 两个字符串按照字典顺序排序 再结合冒泡排序等算法 就可以实现public class Test20{ public String[] getOrderString(String[] s){ int i,j,n=s.length;for(i=1;i<n;i++){ for(j=0;j<n-i;j++){ if(s[j].compareTo(s[j+1])>0){ String temp =...

求编写一个“字符排列问题”的程序
答:i<m;i++) printf("%c",a[t[i]]);printf("\n");}bool C(char a[],int n,int m){if(m>n) return false;int temp[20]; // 假设允许最长字符为20个 int i,k,N;i=k=N=0;for(i=0;i<m;i++) temp[i]=-1;temp[k]=0;while(true){if(temp[k]>=n){if(k==0)...

c++有5个字符串,要求对它们按由小到大顺序排列,用string方法。求...
答:cout<<str[i]<<" "; //输出已排列好的字符串 cout<<endl;return 0;} void sort(string s[]){ int i,j;string temp;for(i=0;i<4;i++)for(j=0;j<4-i;j++)if(s[j]>s[j+1]) //对每个进行比较 { temp=s[j];s[j]=s[j+1];//把小的数放在前面 s[j+1]=temp;} ...

一个字符串abcd,随机组合,最快排列出所有可能性
答:字符串abcd的全排列Java程序如下:public class Permutation { public void perm(char[] c,int start,int end) { if(start==end) { for(int i=0;i<=end;i++) { System.out.print(c[i]); } System.out.println(); } else { for(int i=start;i<=end;i+...

“重复组合数”是怎么算出来的?
答:n个不同的元素中取m次,可能的组合数是C(上标m, 下标n+m-1)比较巧妙的办法是,设想现在有n+m个元素,然后分到n个类中去,每个类要保证有1个,则,好比在n+m个元素中设置分划线,分划线总共有n+m-1个,要放置的分划线有n-1个 所以所有的可能有C(上标n-1, 下标n+m-1)或者也等于C(...

用c语言对10个字符串从小到大排序
答:两个字符串两两比较可以使用库函数的strcmp(char *a,char *b)函数比较。n个的话使用上述方法排序后就可以比较出n个字符串的大小了。排序方法如下 void sort(char *strings[],int n){ char *temp;for(int i=0;i<n;i++)for(int j=i+1;j<n;j++)if(strcmp(strings[i],strings[j])>0...