Chinaunix首页 | 论坛 | 博客
  • 博客访问: 618621
  • 博文数量: 172
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 1252
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-29 22:26
文章分类

全部博文(172)

文章存档

2011年(6)

2010年(7)

2009年(159)

我的朋友

分类: LINUX

2009-12-20 19:50:08

冒泡排序、选择排序、插入排序

#include <stdio.h>
#include <string.h>

int strsrc[10] = {10, 1, 2, 5, 3, 9, 11, 12, 20, 9};
int str[10];

void load_str(void)
{
    int len = sizeof(str);
    memcpy(str, strsrc, len);
}

void swap(int* x, int* y)
{
    int temp;
    temp = *x;
    *x = *y;
    *y = temp;
}

void exch(int* x, int* y)
{

    if(*x > *y) swap(x, y);
}

void sort_print(void)
{
    int i;
    int len = sizeof(str) / 4;

    for(i = 0;i <len; i++) printf("%d ", str[i]);
    printf("\n");
}

void sort_bubble(void)
{
    int i, j, l;
    l = sizeof(str) / 4;

    for(i = 0; i < l; i++)
    {
        for(j = l - 1; j > i; j--)
        {
            exch(&str[i], &str[j]);
        }
    }
}

void sort_select(void)
{
    int i, j, l;
    int min;
    int index = 0;

    l = sizeof(str) / 4;

    for(i = 0; i < l; i++)
    {
        min = str[i];
        for(j = i + 1; j < l; j++)
        {
            if(str[j] < min)
            {
                min = str[j];
                index = j;
            }
            
        }
        swap(&str[i], &str[index]);
    }
}

void sort_insert(void)
{
    int i, j, l;

    l = sizeof(str) / 4;

    for(i = 1; i < l; i++)
    {
        for(j = 0; j < i; j++)
        {
            if(str[i] < str[j])
            {
                swap(&str[i], &str[j]);
            }
            
        }

    }
}


int main()
{
    printf("------------------------------sort_bubble------------------------------\n");
    load_str();
    sort_print();
    sort_bubble();
    sort_print();
    printf("------------------------------sort_select------------------------------\n");
    load_str();
    sort_print();
    sort_select();
    sort_print();
    printf("------------------------------sort_insert------------------------------\n");
    load_str();
    sort_print();
    sort_select();
    sort_print();

    return 0;
}


阅读(2202) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~