首页 > 编程语言 > 详细

C之算法

时间:2015-12-23 10:33:39      阅读:250      评论:0      收藏:0      [点我收藏+]

   1° 选择排序算法

   以字符串排序进行说明

技术分享
#include <stdio.h>
#include <string.h>
#define SIZE 81
#define LIM 20
#define HALT " "
void stsrt(char *strings[], int num);

int main(void)
{
    char input[LIM][SIZE];
    char *ptstr[LIM];
    int ct = 0;
    int k;

    printf("Input up %d lines, and I will sort them.\n", LIM);
    printf("To stop, press the Enter key at a line‘s start.\n");
    while(ct < LIM && gets(input[ct]) != NULL && input[ct][0] != \0)
    {
        ptstr[ct] = input[ct];
        ct++;
    }
    stsrt(ptstr, ct);
    puts("\nHere‘s the sorted list: \n");
    for(k = 0; k < ct; k++)
        puts(ptstr[k]);

    return 0;
}
void stsrt(char *strings[], int num)
{
    char *temp;
    int top, seek;

    for(top = 0; top < num - 1; top++)
        for(seek = top + 1; seek < num; seek++)
            if(strcmp(strings[top], strings[seek]) > 0)
            {
                temp = strings[top];
                strings[top] = strings[seek];
                strings[seek] = temp;
            }
}
View Code

   核心思想:(查找和放置)选择剩余最大值的一个办法就是比较剩余数组的第一和第二个元素。如果第二个元素大,就交换这两个数据。想在比较第一个和第三个元素。如果第三个大,就交换这两个数据。每一次交换都把大的元素移到上面。继续这种方法,直到比较第一个和最后一个元素。完成以后,最大的数就在剩余数组的第一个元素中。此时第一个元素已经排好了序,但是数组中的其他元素还很混乱。

 

C之算法

原文:http://www.cnblogs.com/yerenyuan/p/5068868.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!