当前位置:科普知识站>IT科技>

c语言冒泡排序法是什么

IT科技 阅读(1.26W)

#include void main() { int a[10]; int i,j,t; printf("input 10 numbers:n"); for(i=0;i

相信学过C语言的朋友都知道,在C语言中,常用的排序算法有:冒泡排序、快速排序、插入排序、选择排序、希尔排序、堆排序以及归并排序等等。就算没有用过,相信大家也有所耳闻。在这里呢,小编主要是想和大家一起来探讨探讨C语言的冒泡排序法,大家有什么好的建议可以在评论里给我留言,希望我们相互学习,共同进步。

材料/工具

Visual C++6.0软件

所谓冒泡排序法,就是对一组数字进行从大到小或者从小到大排序的一种算法。 1、具体方法是,相邻数值两两交换。从第一个数值开始,如果相邻两个数的排列顺序与我们的期望不同,则将两个数的位置进行交换(对调);如果其与我们的期望一致,则不

冒泡排序法基本原理

#include int main() { int a[10]; int i,j,t,temp; printf("请输入10个数:"); for (i=0;i

所谓冒泡排序法,就是对一组数字进行从大到小或者从小到大排序的一种算法。具体方法是,相邻数值两两交换。从第一个数值开始,如果相邻两个数的排列顺序与期望不同,则将两个数的位置进行交换(对调);如果其与期望一致,则不用交换。重复这样的过程,一直到最后没有数值需要交换,则排序完成。一般地,如果有N个数需要排序,则需要进行(N-1)趟起泡,我们以从小到大排序为例来看一下,具体情况如下图所示:

#include void main() { int a[10]; int i,j,t; printf("input 10 numbers:n"); for(i=0;i

c语言冒泡排序法是什么

C语言程序的实现

冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将

首先,为了实现效果,先定义一组待排序的数列以及各个变量。具体情况如下图:

选择排序: void select_sort(int a[],int n) //传入数组的要排序的元素个数 {int i,j,min,t; for(i=0;i

c语言冒泡排序法是什么 第2张

算法的实现,具体情况如图:

先上选择法和冒泡法: 1.选择法 #include void main() { int i,j,min,temp; int a[10]; printf("请输入十个整数:"); for(i=0;i

c语言冒泡排序法是什么 第3张

运行结果显示。具体情况如图

这个应该到网上去搜索啊,不该在这问。冒泡排序的原理就是:(升序)依次比较相邻的2个数,把较大的值放在后面,使最后一个数变成数组中的最大值。循环这个过程,直到所有的数据都按这个规则排列好。此时,排序完毕。举例:3,2,5,7,1 (升序) 1. 3

c语言冒泡排序法是什么 第4张

扩展阅读,以下内容您可能还感兴趣。

C语言,冒泡排序法从大到小

#抄include<stdio.h>

#include<stdlib.h>

#include<time.h>

void main()

{

int flag,temp,i,j,a[20];

srand((unsigned)time(NULL));

printf("before sorting...\n");

for(i=0;i<20;i++)

a[i]=rand()%1000;

for(i=0;i<20;i++)

printf("%4d",a[i]);

for(i=0;i<20;i++)

{

flag=0;

for(j=0;j<20-i-1;j++)

{

if(a[j]<a[j+1]) //数组袭越界了百,帮度你改了知一下道

{

temp=a[j],a[j]=a[j+1];a[j+1]=temp;

flag=1;}

}

if(flag==0)

break;

}

printf("after sorting...\n");

for(i=0;i<20;i++)

printf("%4d",a[i]);

}追问这样改之后排序后的第一个数就是乱码追答

我运行,怎么没出现乱码勒

C语言冒泡排序法代码是什么?

所谓冒泡排序法,就是对一组数字进行从大到小或者从小到大排序的一种算法。

1、具体方法是,相邻数值两两交换。从第一个数值开始,如果相邻两个数的排列顺序与我们百的期望不同,则将两个数的位置进行交换(对调);如果其与我们的期望一致,则不用交换。度重复这样的过程,一直到最后没有数值需要交换,则排序完成。具体情况如下图所示:

2、为了实现效果,我们得先定义一组待排序的数列以及各个变量。具体情况如下图:

3、算法知的实现,具体情况如图:

4、运行结果显示。具体情况如图:

5、按照上面的程序,在第五趟(i=5)起泡时,计算机不仅要对“1,5,6,4”两两进行比较并排序,还要对“7,8,9,13”进行两两比较并排序,而“7,8,9,13”在第四趟起泡时就已经排序好了,所以道再进行比较的话,就显得非常多余。图示如下:

6、在上面程序的基础上进行优化。具体情况如图所示:

7、优化后的输出结果。如图所示:

关于C语言冒泡排序法的问题

改好了:

#include &7a686964616fe4b893e5b19e31333238653264quot;stdio.h"

#include "stdlib.h"

void PrintArray(int a[],int n) //输出排序每一步的结果

{

int i;

for(i=0;i<n;i++) //通过循环输出元素

printf("%4d",a[i]);

printf("\n");

}

void BubbleSort(int a[],int n) //冒泡排序函数

{

int i,j,tmp; //tmp为中间变量

int flag; //标志变量,如果为0,说明不再交换顺序,排序结束

int count=0; //记录交换次数

printf("initial sorting:");

PrintArray(a,n); //输出排序前的序列

for(i=0;i<n;i++)

{

flag=0; //初始值为0

for(j=i+1;j<n;j++)

{if(a[i]>a[j]) //如果前面的数比后面的数大,进行交换

{

tmp=a[i];

a[i]=a[j];

a[j]=tmp;

flag=1; //如果发生交换,标识变量设为1

}

}

count++; //记录已经发生的排序次数

printf("after %d sorting:",count);

PrintArray(a,n); //输出第count次的排序结果

if(flag==0) //没进行一次排序,flag都清0,若交换再发生,则排序完成

{

return;

}

}

}

void main() //主函数

{

int *a,n=5,i=0;

a=(int *)malloc(n*sizeof(int)); //为5个待排序的整型数开辟储存空间

for(i=0;i<n;i++)

scanf("%d",&a[i]); //输入待排序数

BubbleSort(a,n); //调用排序函数进行排序

free(a); //排序结束,释放储存空间

}

C语言中冒泡排序法(又称起泡排序法)得具体程序

冒泡法我是这样理解的,便抄于掌握和记忆。首先冒泡是n长度的数组开始的两位开始,逐位双双比较一直到最后两个,所以最外循环比较了n-1次。第一个数比较了以后袭就不比知了,从第二个开始,一直比较到数组末尾,于是内循环的起始位置不同,每次都是外侧i的值加0,也就是i。但结束的*和外道层循环是相同的。于是写法为for (i=0;i<n-1;i++)

{

for(j=i;j<n-1;j++)更多追问追答追答比较a[j]和a[j+1]}}根据大小需要,决定是否替换两个位置的值。

c语言冒泡排序法问题(新手)

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

#define k 20 //错误在这里,你开始2,太小了,设e79fa5e9819331333332623264置大一点,就可以了

void InputName(char StudName[][8]){

int i;

for(i=0;i<8;i++){

gets(StudName[i]);

}

}

void OutputName(char StudName[][8]){

int i;

for(i=0;i<8;i++){

puts(StudName[i]);

}

}

void BubbleSort(char StudName[][8]){

char n[8];

int i,j;

for(i=0;i<8;i++){

for(j=0;j<8-i;j++){

if((strcmp(StudName[j],StudName[j+1])>0)){

strcpy(n,StudName[j]);

strcpy(StudName[j],StudName[j+1]);

strcpy(StudName[j+1],n);

}

}

}

}

void main(){

char StudName[k][8];

InputName(StudName);

BubbleSort(StudName);

OutputName(StudName);

}