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

字元串排序演算法

發布時間: 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-07-05 16:10:30 瀏覽:532
微博資料庫設計 發布:2025-07-05 15:30:55 瀏覽:30
linux485 發布:2025-07-05 14:38:28 瀏覽:310
php用的軟體 發布:2025-07-05 14:06:22 瀏覽:760
沒有許可權訪問計算機 發布:2025-07-05 13:29:11 瀏覽:436
javaweb開發教程視頻教程 發布:2025-07-05 13:24:41 瀏覽:719
康師傅控流腳本破解 發布:2025-07-05 13:17:27 瀏覽:246
java的開發流程 發布:2025-07-05 12:45:11 瀏覽:692
怎麼看內存卡配置 發布:2025-07-05 12:29:19 瀏覽:288
訪問學者英文個人簡歷 發布:2025-07-05 12:29:17 瀏覽:837