为字符串里的字符排序(采用最简单的选择法)

#include <stdio.h>
#include <string.h>
void swap(char *a,char* b);
int main(){
    char str[100];
    char min;
    gets(str);
    //printf("%s",str);
//    min = str[0];
//printf("test 1");
    for(int i = 0 ; i<strlen(str)-1;i++)
    {
        min = i;
        for(int j = i+1;j<strlen(str);j++)
        {
            if(str[min]>str[j])
            {
                min = j;
            }
        }
        swap(&str[i],&str[min]);
    }
    printf("%s",str);
}

void swap(char* a,char *b)
{
    char str;
    str = *a;
    *a = *b;
    *b = str;
}

顺带一提:(一个学渣的心得)

关于选择排序和冒泡排序(掌握这两个简单排序法,关键在于对控制条件的边界(起点和终点,遍历的过程中,可以类比成一个箭头针,从某一个起点,比较到终点;还有一组与之对应的被比较元素);注意,随着比交的趟次增加,两组边界都是单边收缩的变化,即又一边始终不变(每一趟都要从那个定边界开始比较,一个检查排序写法错误的指标就是利用是否单边收缩.)

posted @ 2023-03-21 13:38  xuchaoxin1375  阅读(14)  评论(0)    收藏  举报  来源