欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

c语言排序 桶排序

程序员文章站 2022-05-23 09:18:22
...

有重复元素的桶排序
1.保留重复元素

#include <stdio.h>
/*****tonytrek*****2021.5.11*****/
/*****桶排序*****/
void sort(int*,int);
void print_arry(int *,int);
int main()
{
    int arr[5]={1,8,8,4,5};
    sort(arr,5);
    print_arry(arr,5);
    return 0;
}
void sort(int*arry,int length)
{
    int arr_t[10]={0};
    for(int i=0;i<length;i++)
    {
        arr_t[arry[i]]++;
    }
    int no=0;
    for(int i=0;i<10;i++)
    {
        int num=arr_t[i];
        for(;num>0;num--)
        {
            arry[no]=i;
            no++;
        }
    }
    return;
}

void print_arry(int* arry,int length)
{
    printf("[");
    for(int i=0;i<length;i++)
    {
        printf("%d",arry[i]);
    }
    printf("]");
}

1.不保留重复元素

#include <stdio.h>
/*****tonytrek*****2021.5.11*****/
/*****桶排序*****/
void sort(int*,int);
void print_arry(int *,int);
int main()
{
    int arr[5]={1,8,8,4,5};
    sort(arr,5);
    return 0;
}
void sort(int*arry,int length)
{
    int arr_t[10]={0};
    for(int i=0;i<length;i++)
    {
        arr_t[arry[i]]++;
    }
    int no=0;
    for(int i=0;i<10;i++)
    {
        if(arr_t[i]!=0)
        printf("%d",i);
    }
    return;
}