c语言数据结构排序算法汇总

/**简单插入排序(以temp元素为中间值 控制循环条件 不满足条件进行交换)*插入排序(插入一个数据保持有序排列)*冒泡排序*改进的冒泡排序算法(有效的降低时间复杂度)*希尔排序(有点模糊)(插入排序的升级版 增加了增量的概念 可以降低时间复杂度)*选择排序*快速排序 (递归的思想)*堆排序算法(利用二叉树点的储存规则 保证树中元素的顺序保持递增或者递减的规律)*基数排序算...
摘要由CSDN通过智能技术生成

/*
*简单插入排序(以temp元素为中间值 控制循环条件 不满足条件进行交换)
*插入排序(插入一个数据保持有序排列)
*冒泡排序
*改进的冒泡排序算法(有效的降低时间复杂度)
*希尔排序(有点模糊)(插入排序的升级版 增加了增量的概念 可以降低时间复杂度)
*选择排序
*快速排序 (递归的思想)
*堆排序算法(利用二叉树点的储存规则 保证树中元素的顺序保持递增或者递减的规律)
*基数排序算法 (分配(两次分配) 收集 输出)主关键字和次关键字的分配
*归并排序算法
*/

实现代码
#include<stdio.h>
#include<stdlib.h>
#define RADIX 10//基数的个数 0-9
typedef struct node
{
    int  key;//关键字
    struct node *next;//指向下一个数据节点的指针
}Node;//数据节点指针
void simple_insertsort(int *s,int length);//简单插入排序
void insert_sort(int *s,int length,int k);//插入排序
void bubble_sort(int *s,int length);//冒泡排序
void pre_bubblesort(int *s,int length);//改进的冒泡排序的算法
void select_sort(int *s,int length);//选择排序
void shell_sort(int *s,int length);//希尔排序
void Quick_Sort(int *s,int i,int j);//快速排序算法
int partition(int *s,int i,int j);//快速划分函数  配合快速排序函数的使用
void Heap_Sort(int *s,int length);//堆排序算法
void Heap_Adjust(int *s,int i,int length);//排序调整函数 配合堆排序函数的使用
void Radix_sort(int a[],int n);//基数排序函数
int resolve(int key,int level);//对数据进行划分层次
void Arrange(Node*arraynode,Node*group[],int level);//对待排序数据进行分配处理
Node*collect(Node*group[]);//对group数组进行收集处理的函数
void Merge_sort(int *a,int i,int j,int*b );//归并排序函数
void Merge(int *a,int s1,int e1,int s2,int e2,int *b);//合并函数
void  main()
{
    int m;//数据的个数
    int n[100];//待排序的数组
    int s[100];//中间数组
    int i;
    int k;//输入的插入数据
    printf("请输入数据的个数:\n");
      scanf("%d",&m);
      printf("请依次输入数据:\n");
        for(i=0;i<m;i++)
            scanf("%d",&n[i]);
          printf("===========堆排序==============\n");
          Heap_Sort(n,m);
          for(i=0;i<m;i++)
            printf("%d\t",n[i]);
             printf("\n");
              printf("==========简单插入排序==============\n");
                simple_insertsort(n,m);
                for(i=0;i<m;i++)
                    printf("%d\t",n[i]);
                   printf("\n");

        printf("==========冒泡排序==============\n");
                bubble_sort(n,m);
                for(i=0;i<m;i++)
                    printf("%d\t",n[
  • 7
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值