当前位置:首页 » 操作系统 » 字符串排序算法

字符串排序算法

发布时间: 2023-01-03 20:30:41

java 字符串排序

//这个绝对满足您的要求
import java.util.Arrays;

public class StringSort {
public static void main(String[] args) {
String ss[]={"ab","wang","hi","a","abff"};
MyString mySs[]=new MyString[ss.length];//创建自定义排序的数组
for (int i = 0; i < ss.length; i++) {
mySs[i]=new MyString(ss[i]);
}
Arrays.sort(mySs);//排序
for (int i = 0; i < mySs.length; i++) {
System.out.println(mySs[i].s);
}
}

}

class MyString implements Comparable<MyString>{
public String s;//包装String

public MyString(String s) {
this.s = s;
}

@Override
public int compareTo(MyString o) {
if(o==null||o.s==null) return 1;
if(s.length()>o.s.length()) return 1;
else if(s.length()<o.s.length()) return -1;
return s.compareTo(o.s);
}
}

⑵ 输入n个字符串,用任意算法对其进行排序并按从小到大顺序输出

#include<stdio.h>

#include<string.h>

int main ()

{

char s[100][50],t[50];

int n,i,j,k;

scanf("%d ",&n);

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

gets(s[i]);

for(i=0;i<n-1;i++)

{

k=i;

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

if(strcmp(s[j],s[k])<0)k=j;

strcpy(t,s[i]); strcpy(s[i],s[k]); strcpy(s[k],t);

}

printf("====== ");

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

puts(s[i]);

return 0;

}

伪代码:

1。输入n

2。输入n个字符串到s数组

3。i=0

4。扫描第i个以后的所有字符串,找到最小字符串的序号

5。将第i个字符串与找到的最小字符串交换,然后i加1。

6。如i<n,转4。

7。输出n个字符串。

⑶ 字符串排序问题

#include<stdio.h>
#include<string.h>
#include<conio.h>
int num_A(char *str)//计算A的个数
{
int num=0;
int i=0;
while(str[i])
{
if(str[i]=='A')
num++;
i++;
}
return num;
}
void main()
{
char str[100][100];//存放数组
int ch;
int len[100];//存放对应数组中A的个数...
int i=0,j=0,temp;
printf("Please Input the strings include \"A or M ro C\",Press [e] to end:\n");
printf("------------------------------------------------------\n");
while(1)
{
ch=getch();
if(ch=='e'||ch=='E')
{
str[i][0]='\0';
break;
}
if(ch==8)
{
if(j!=0)
{
j--;
printf("\b \b");
str[i][j]='\0';
}
continue;
}
if(ch==13)
{
if(j!=0)
{
str[i][j]='\0';
i++;
j=0;
printf("\n");
}
continue;

}
if(ch=='A'||ch=='C'||ch=='M')
{
str[i][j]=ch;
printf("%c",ch);
j++;
}
}
temp=i;
printf("------------------------------------------------------\nresult:\n");

printf("------------------------------------------------------\n");
for(i=0;i<temp;i++)
{
len[i]=num_A(str[i]);
}
for(i=0;i<temp;i++)
{
for(j=0;j<temp;j++)
{
if(len[j]==i)
{
printf("%s\n",str[j]);
}
}
}
printf("------------------------------------------------------\n");
}
/*********************************/
/********只能输入C M A*************/
/********输入其他不接受*************/
/********输入e结束字符串输入********/
/*********************************/

⑷ C语言中如何将10个字符串进行排序

#include<stdio.h>

#include<string.h>

int main()

{

int j,k,i,t,n;

char s[10][10],b[10][10];

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

{

scanf("%s",s[i]);

}

n=strlen(s[1]);

k=0;

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

{

for(j=0;j<9-i;j++)

if(strcmp(s[j],s[j+1])>0)

{

for(k=0;k<n;k++)

b[j][k]=s[j][k];

for(k=0;k<n;k++)

s[j][k]=s[j+1][k];

for(k=0;k<n;k++)

s[j+1][k]=b[j][k];

}

}

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

{

printf("%s ",s[i]);

}

return 0;

}

运行效果:

(4)字符串排序算法扩展阅读:

scanf函数用法:

scanf("输入控制符",输入参数);

功能:将从键盘输入的字符转化为“输入控制符”所规定格式的数据,然后存入以输入参数的值为地址的变量中。

用scanf()函数以%s格式读入的数据不能含有空白符时,所有空白符都被当做数据结束的标志。所以题中函数输出的值只有空格前面的部分。

如果想要输出包括空格在内的所有数据,可以使用gets()函数读入数据。gets()函数的功能是读取字符串,并存放在指定的字符数组中,遇到换行符或文件结束标志时结束读入。换行符不作为读取串的内容,读取的换行符被转换为字符串结束标志''。

热点内容
林肯ftp 发布:2025-05-10 18:04:02 浏览:441
自动认购源码 发布:2025-05-10 17:59:08 浏览:916
存储行业发展 发布:2025-05-10 17:56:59 浏览:643
非易失存储技术 发布:2025-05-10 17:47:17 浏览:705
androidstudiosvn 发布:2025-05-10 17:47:14 浏览:112
php下载csv 发布:2025-05-10 17:46:30 浏览:407
为什么每次登录淘宝都要输密码 发布:2025-05-10 17:44:57 浏览:574
战舰世界国服脚本不能用 发布:2025-05-10 17:44:46 浏览:747
asp判断数据库 发布:2025-05-10 17:41:03 浏览:284
刮痘痘解压 发布:2025-05-10 17:35:34 浏览:22