C 字串數組排序的小例子

來源:互聯網
上載者:User

複製代碼 代碼如下:#include<stdio.h>
#include<string.h>
#include <malloc.h>
void q_sortB(char str[20][20], int n);
void qs(char str[20][20],int n);

void main() {
int i, n;
char str[20][20] = { { "Adam" }, { "Bob" }, { "Dimen" }, { "Colin" }, {
"Correal" }, { "Sick" }, { "Rachel" } };

char * str1[20]= { { "Adam" }, { "Bob" }, { "Dimen" }, { "Colin" },
{ "Correal" }, { "Sick" }, { "Rachel" } };
qs(str,7);
q_sortB(str, 7);
for (i = 0; i < 7; i++){
printf("%s\n", str[i]);
}

}

void qs(char str[20][20],int n){
char temp[20];
int i=0;
int j=0;
int min=i;
for(i=0;i<n-1;i++){
min=i;
for(j=i;j<n;j++){//本次找最小值的範圍是從i開始 到最末尾
if( strcmp(str[j],str[min])==-1 ){
min=j;
}
}
//此時min指向最小的
//那麼應該把min放在已排序部分的後一個//也就是本次排序的第一個
strcpy(temp,str[i]);
strcpy(str[i],str[min]);
strcpy(str[min],temp);

}
}

//泡泡
void q_sortB(char str[20][20], int n) {
char a[20];
int i, j;
for (i = 0; i < n-1; i++) {
for (j = i ; j < n-1; j++)
if (strcmp(str[j], str[j + 1]) > 0) {
strcpy(a, str[j]);
strcpy(str[j], str[j + 1]);
strcpy(str[j+1], a);
}
}

}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.