c语言中冒泡排序算法实现
/*
已知一顺序表l中的存储的数据元素的类型为整型。
顺序表中元素的值为(12,24,16,7,5,8,36,44,7,10)
(1)定义一个算法,打印输出顺序表中所有元素的值。
(2)定义一个算法,求L中7的个数。
(3)定义一个算法在L中第5个元素前插入一个值为17的元素。
(4)删除顺序表中值为8的元素。
(5)查找顺序表中值为36的元素的位置,有36的话返回其下标+1,没有返回0。
(6)把顺序表ls(6,0,4,12)链接到l的后面。(ls的类型和l的类型相同)
(7)对顺序表l实现逆置。
(8)采用冒泡排序法,对顺序表l进行排序。
(以上每种算法调用之后,均要输出顺序表的所有元素的值。即调用打印顺序表的算法。)
*/
#include<stdio.h>
#define MAXSIZE 100 //初始化一个MAXSIZE
struct sqlist{ //定义一个结构体说明一个线性表
int elem[MAXSIZE]; //定义一个整型的数组名为elem
int length; //线性表的长度
};
//存数据到线性表内
struct sqlist l={{12,24,16,7,5,8,36,44,7,10},10};
struct sqlist ls={{6,0,4,12},4};
/*
void init_sqlist()
{
l.elem={12,24,16,7,5,8,36,44,7,10};
l.length=10;
}
*/
//输出线性表的元素
void printf_sqlist()
{
int i;
printf("\n");
for(i=0;i<=l.length-1;i++)
printf("%4d",l.elem[i]);
printf("\n");
}
//计算l线性表中值为7
int number(int x)
{
int i,n=0;
for(i=0;i<=l.length-1;i++)
if(x==l.elem[i])
n=n+1;
return n;
}
//在l线性表中第5个元素前插入一个值为17的元素
void insert_sqlist(int n,int x)
{
int i;
for(i=l.length-1;i>=n-1;i--)
l.elem[i+1]=l.elem[i];
l.elem[n-1]=x;
l.length++;
}
//删除顺序表中值为8的元素
void del_sqlist(int x)
{
int i,j;
for(i=0;i<=l.length-1;i++)
if(x==l.elem[i])
break;
for(j=i+1;j<=l.length-1;j++)
l.elem[j-1]=l.elem[j];
l.length--;
}
//查找顺序表中值为36的元素位置返回下标,否者返回0
int find_sqlist(int x)
{
int i;
for(i=0;i<=l.length-1;i++)
if(l.elem[i]==x)
break;
if(i==l.length)
return 0;
else
return i+1;
}
//把ls顺序表接l后
void hebing()
{
int i;
for(i=0;i<=ls.length-1;i++)
l.elem[i+l.length]=ls.elem[i];
l.length=l.length+ls.length;
}
//对l表进行逆置
void nizhi()
{
int i,t;
for(i=0;i<=l.length/2-1;i++)
{
t=l.elem[i];
l.elem[i]=l.elem[l.length-1-i];
l.elem[l.length-1-i]=t;
}
}
//进行冒泡排序
void maopao()
{
int i,j,t;
for(i=0;i<=l.length-1;i++)
for(j=0;j<l.length-1-i;j++)
if(l.elem[j]>l.elem[j+1])
{
t=l.elem[j];
l.elem[j]=l.elem[j+1];
l.elem[j+1]=t;
}
}
main()
{
//init_sqlist();
printf_sqlist();
printf("7--NUM--%d\n", number(7));
insert_sqlist(5,17);
printf_sqlist();
del_sqlist(8);
printf_sqlist();
printf("36--id--%d\n",find_sqlist(36));
hebing();
printf_sqlist();
nizhi();
printf_sqlist();
maopao();
printf_sqlist();
}
本文来自博客园,作者:JackieDYH,转载请注明原文链接:https://www.cnblogs.com/JackieDYH/p/17635000.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现