首页 > 其他分享 >c语言冒泡排序法代码(c语言冒泡排序法代码讲解)

c语言冒泡排序法代码(c语言冒泡排序法代码讲解)

时间:2022-10-24 19:06:31浏览次数:49  
标签:语言 temp int 代码 冒泡排序 排序 arrDisorderQueue left


求一个C语言冒泡排序法的简单程序怎么办?

  下一趟排序开始时,R[1。。lastExchange-1]是有序区,R[lastExchange。。n]是无序区。这样,一趟排序可能使当前有序区扩充多个记录,从而减少排序的趟数。具体算法【参见习题】。

求C语言链表的冒泡排序的代码

p->data = p->link->data;

求一VC代码编写的冒泡排序的程序代码

冒泡排序:

(1)稳定性:稳定

(2)时间复杂度:

①原始数据正序,需一趟排序,比较次数n-1=O(n)

②原始数据反序,需n-1趟排序,比较次数

③一般情况下,虽然不一定需要n-1趟排序,但由于每次数据位置的改变需要3次移动操作,因此,总时间复杂度高于直接插入排序。

(3)空间复杂度:仅需一个中间变量

_U32 Sort_Bubble(_U32 arrDisorderQueue[],_U32 ulQueueLength)
_U32 i,j,ultemp;
_U32 h=1;
/*入口参数检查*/
if(arrDisorderQueue==NULL)
{
return G_FAILURE;
}
for(i=0;i


{
for(j=0;j


{
ultemp = arrDisorderQueue[j];
if(arrDisorderQueue[j] > arrDisorderQueue[j+1])
{
arrDisorderQueue[j]=arrDisorderQueue[j+1];
arrDisorderQueue[j+1]=ultemp;
}
}
}

return G_SUCCESS;

参数arrDisorderQueue表示要排序的数组,ulQueueLength表示数字的大小。main()

int a[11]; 
int i,j,k;
printf("intput 10 numbers:\n");
for(i=1;i<11;i++)
scanf("%d",&a[i]);
printf("\n");
for(i=1;i<=9;i++)
for(j=1;j<=10-i;j++)
if(a[j]>a[j+1])
k=a[j];a[j]=a[j+1];a[j+1]=k;
printf("the sorted numbers:\n");
for(i=1;i<11;i++)
printf("%d ",a[i]);

}下面列举了很多排列法,你自己看下哦!!很有帮助的:

void InsertSorting(int R[],int n)
{
for(int i=1;i


{
int temp=R[i];
int j=i-1;
while((j>=0)&&(temp


{
R[j+1]=R[i];
j--;
}
R[j+1]=temp;
}
}

1.1.2链式存储

void InsertSorting(List l)
{
node *h,*s,*p,*q,*last;
h=l.h;
q=h;
p=h->next;
last=p->next;
for(;p->next!=null;last=last->next)
{
while((q!=p)&&(p->data>q->data))
{
s=q;
q=q->next;
}
if(q!=p)
{
s->next=p;
p->next=q;
}
p=last;
}
}

1.2.二分插入:

1.2顺序存储

void BInsertSort(int R[],int n)
{
for(int i=1;i


{
left=0; right=i-1;
int temp=R[i];
while(left<=right)
{
int middle=(left+right)/2;
if(temp


right=middle-1;
else
left=middle+1;
}
for(int j=i-1;j>=left;j--)
R[j+1]=R[j];
R[left]=temp;
}
}

1.3shell:

1.3略

2.交换排序

2.1冒泡排序

void BubbleSorting(int R[],int n)
{
for(i=1;i


{
bool change=0;
for(int j=n-1;j<=n;j--)
{
if(R[j]


{
int temp=R[j];
R[j]=R[j-1];
R[j-1]=temp;
change=1;
}
if(!change)
return;
}
}

2.2快速排序

void QuickSort(int R[],int left,int right)
{
int i=left; int j=right;
int temp=R[i];
while(i


{
while((R[j]>temp)&&(i


j--;
if(i


R[i]=R[j];
while((R[i]


i++;
if(i


R[j]=R[i];
}
R[i]=temp;
if(left


if(right>i+1)QuickSort(R,i=1, right);
}

c语言冒泡排序法代码(c语言冒泡排序法代码讲解)_算法

c语言冒泡排序(要求输出每一步排序过程)代码

for(i=0;i


/*这里是冒泡*/
for(j=0;j


if(a[j]>a[j+1]){
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
/*只要多加个显示的循环不就行了*/
for(k=0;k


pritf("%d\t",a[k]);
printf("\n");
}#include "stdio.h"
void bubsort(int a[],int n)
int i,j,k,flag,temp;
for(i=0,flag=0;i {
for(j=0;j {
if(a[j]>a[j+1])
temp=a[j];a[j]=a[j+1];a[j+1]=temp;
flag++;
for( k=0;kprintf("%d\t",a[k]);
if(flag==0) break;
void main()
int a[10]={20,45,86,5,75,38,61,152,16,55};
bubsort(a,10);

标签:语言,temp,int,代码,冒泡排序,排序,arrDisorderQueue,left
From: https://blog.51cto.com/yetaotao/5790928

相关文章

  • c语言小游戏(c语言小游戏代码飞机大战)
    怎样用C语言编写一个小游戏?“贪吃蛇”C代码:#include#include#include#include#include#defineW78 //游戏框的宽,x轴#defineH26 //游......
  • c语言strlen(c语言strlen计算空格吗)
    c语言里面的strlen是干什么的strlen()是计算字符串长度的函数,将返回从字符串首到'\0'之间总共的字符个数,原型为:externunsignedintstrlen(char*s);所以除非你的a[0]本身......
  • c语言学习资料
    在大二学习了c语言基础教程不请出以后应看先什么资料要是想考二级的话就看看c公共基础和南开一百题我保证只要这两个你看会了七成就能过二级要是想深入学习我就不了解了。......
  • c语言关键字(c语言关键字volatile)
    什么是C语言关键字关键字又称保留字,是c语言预定义的单词,在程序中有不同的使用目的,在定义标识符的时候,不能使用这些关键字,否则在编译时会产生莫名其妙的错误,C语言由ANSI定义......
  • c语言helloworld代码(c语言helloworld代码编写)
    C语言:求代码#includeintmain()inta,b,c,d,t,max,min;printf("Enterfourintegers:");scanf("%d%d%d%d",&a,&b,&c,&d);if(ad)min=d;printf("Largest:%d\nS......
  • 自然语言处理学习笔记-lecture09-篇章分析
    自然语言处理的处理单元分为字(编码、输入法),词、短语(形态分析、汉语分词、词性标注、词义消歧、命名实体识别等),句子(句法分析、语块分析、语义角色标注),篇章(机器翻译、......
  • LeaRun低代码开发平台 助推物联网应用快速落地
    当前,物联网技术正在推动人类社会从“信息化”向“智能化”转变,促进信息科技与产业发生巨大变化。但目前的实际情况来看,物联网的终端设备类型多、数量大,安装运维成本高、工......
  • 致敬!用代码改变世界的英雄
    10月24日是中国程序员日,该节日的起源是由博客园在2010年9月份的时候在论坛上的发起的一个投票选出的。而此次投票的缘由是一条新闻“今天是程序员节”,俄罗斯把每年的第256(......
  • 从零开始配置vim(28)——代码的编译、运行与调试
    在前面几个章节,我们逐渐为Vim配置了语法高亮、代码的跳转和自动补全功能。现在的Vim已经可以作为代码编辑器来使用了。但是想将它作为日常发开的主力编辑器来用还需要......
  • 低代码平台 - 危险的赌注
    低代码应用平台(LCAP-LowCodeApplicationPlatforms)在多样、复杂的现代软件开发情势下应运而生。根据Gartner的数据,Mendix 是这方面的翘楚,但其实类似的分析也适用于......