當前位置:首頁 » 操作系統 » 字元串排序演算法

字元串排序演算法

發布時間: 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()函數的功能是讀取字元串,並存放在指定的字元數組中,遇到換行符或文件結束標志時結束讀入。換行符不作為讀取串的內容,讀取的換行符被轉換為字元串結束標志''。

熱點內容
模擬器安卓版哪個好用電腦玩 發布:2025-05-10 19:41:00 瀏覽:15
浪潮伺服器配置bmc管理ip 發布:2025-05-10 19:26:31 瀏覽:469
兒童編程編 發布:2025-05-10 19:05:46 瀏覽:384
自己在電腦上怎麼搭建伺服器 發布:2025-05-10 19:05:11 瀏覽:426
沖鋒車裡面配置了什麼 發布:2025-05-10 18:55:31 瀏覽:430
c語言typedef的用法 發布:2025-05-10 18:51:35 瀏覽:893
同城網站源碼 發布:2025-05-10 18:47:36 瀏覽:643
怎麼查網易我的世界伺服器ip 發布:2025-05-10 18:46:19 瀏覽:943
共享文件夾英文 發布:2025-05-10 18:46:14 瀏覽:950
linux時間函數 發布:2025-05-10 18:46:12 瀏覽:112