栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

已知有7个待排序的元素,它们的关键字序列为(47, 56, 29, 16, 92, 33, 20),编写一个程序,用如下方法对其进行升序排序,要求显示每趟排序的结果:直接插入排序;希尔排序;冒泡排序

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

已知有7个待排序的元素,它们的关键字序列为(47, 56, 29, 16, 92, 33, 20),编写一个程序,用如下方法对其进行升序排序,要求显示每趟排序的结果:直接插入排序;希尔排序;冒泡排序

#include
#include
#include
const int MAXSIZE=100;
typedef int KeyType;
typedef int ElemType;
typedef struct
{    KeyType key;
    ElemType data;
}SqType;

void InsertSort(SqType R[],int n)
{    int i,j;
    SqType tmp;
    for(i=1;i     {
        if(R[i-1].key>R[i].key)
        {    tmp=R[i];
            j=i-1;
            do
            {    R[j+1]=R[j];
                j--;
            }while(j>=0 && R[j].key>tmp.key);
            R[j+1]=tmp;
        }
         printf("i=%d",i); for(int i=0; i<7; i++)printf("%3d",R[i].key);printf("n");     
        
    }
}

void ShellSort(SqType R[],int n)
{    int i,j,d;
    SqType tmp;
    d=n/2;
    while(d>0)
    {    for(i=d;i         {    tmp=R[i];
            j=i-d;
            while(j>=0 && tmp.key             {    R[j+d]=R[j];
                j=j-d;
            }
            R[j+d]=tmp;
        }
    printf("i=%d",d); for(int i=0; i<7; i++)printf("%3d",R[i].key);printf("n");    d=d/2; 
    }
}

void BubbleSort(SqType R[],int n)
{    int i,j,exchang;
    SqType tmp;
    for(i=0;i     {    
        exchang=0;
        for(j=n-1;j>i;j--)
            if(R[j].key             {    tmp=R[j];
                R[j]=R[j-1];
                R[j-1]=tmp;
                exchang=1;
            }
            printf("i=%d",i); for(int x=0; x<7; x++)printf("%3d",R[x].key);printf("n");    
            if(exchang==0)
                 return;
    }
}

void main()
{    SqType R[MAXSIZE];
    int a[]={47,56,29,16,92,33,20},i;
    printf("初始序列:");
    for(i=0; i<7; i++)
    {    
        R[i].key=a[i];printf("  %d  ",R[i].key);
        }
    printf("n直接插入排序:n");
    InsertSort(R,7);
    printf("初始序列:");
    for(i=0; i<7; i++)
    {    
        R[i].key=a[i];printf("  %d  ",R[i].key);
        }    
    printf("n希尔排序:n");
    ShellSort(R,7);
    printf("初始序列:");
    for(i=0; i<7; i++)
    {
        R[i].key=a[i];printf("  %d  ",R[i].key);
        }
    printf("n冒泡排序:n");
    BubbleSort(R,7);
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/628716.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号