求C语言冒泡排序!!!急!!急!!!
#include
#define MAX_ROW 15
#define MAX_COLUMN 10
void sort(int array[], int count, int arrayIndex)
{
int compareCount = 0;
int moveCount = 0;
for(int i=0; i<count;i++)
{
for(int j=i + 1;j<count; j++)
{
compareCount++;
if(array[i] > array[j])
moveCount++;
}
}
printf("
第: %d 个数组比较了: %d 次, 移动了 :%d 次", arrayIndex, compareCount, moveCount);
printf("
");
}
void main()
{
int arrayCount = 0;
bool inputVaild = false;
int array[MAX_ROW][MAX_COLUMN] = {0};
while(!inputVaild)
{
printf("请输入数组的组数(1~15): ");
scanf("%d", &arrayCount);
if(arrayCount 15)
{
printf("
输入的数据无效,请重新输入...");
inputVaild = false;
}
else
inputVaild = true;
}
for(int i=0;i<arrayCount;i++)
{
printf("请输入第 %d 组数据(10个):
", i + 1);
for(int j=0; j<MAX_COLUMN; j++)
scanf("%d", &array[i][j]);
}
for(i=0;i<arrayCount;i++)
sort(array[i], MAX_COLUMN, i + 1);
}
printf("%d",&c[i]); //错了。//你把这些值的地址给打印出来了,应该改为printf("%d",c[i]);//如果看着不够显示的话,可以换一下行。
我写个冒泡法的算法实现函数typedef int KeyType
typedef struct
{
KeyType key;
InforTyjpe otherdata;
}RecordType;/*定义结构体类型
void BunnleSort(RecData R,int n)
{
int i,j,flag; /*flag为交换标志量
RecordType temp; /*RextrdType是关键字类型*/
for(i=1;i<n;i++)
{
flag=0; /*每趟开始前,flag=0,即无交换发生*/
for(j=0;j<n-1;j++)
if(R[j].key>R[j+1].key)/*找最大关键字*/
{
flag=1;
temp=R[j];
R[j]=R[j+1];
R[j+1]=temp;
}
if(flag==0) /*本趟无交换,提前推出*/
return;
}
}
你可以写个主函数调用上面的BunnleSort函数,也可以不用结构体类型,用整型,浮点型等,把R〔n〕当实参调用就行了,要是不能我明天在给你写个
#include "stdio.h"
#define N 6 //6趟排序
void sort(int b[]); //排序函数
void main()
{
int i;
int a[1000];
printf("\n请输入这%d个数据:\n",N);
for(i=1; i<=N; i++)
scanf("%d",&a[i]);
printf("\n你输入的数据如下:");
for(i=1; i<=N; i++)
{
printf("%5d",a[i]);
}
sort(a);
printf("\n\n由小到大顺序:\n");
for(i=1; i<=N; i++)
printf("%d\n",a[i]);
printf("\n");
}
void sort(int b[]) //排序函数的实现
{
int i,j,t;
for(j=1; j<N; j++)
for (i=1; i<=N-j; i++)
{
if (b[i]>b[i+1])
{
t=b[i];
b[i]=b[i+1];
b[i+1]=t;
}
}
}
c语言中冒泡排序的原理是什么?
{ t=a,a=b,b=t;} if(a<c){ t=a,a=c,c=t;} if(b<c){ t=b, b=c, c=t;} printf("%d %d %d\\n",a,b,c);return 0;} 原理就是运用冒泡算法,把最大的数浮在最上面,而小的数就下沉,最后就输出。
C语言,大牛推荐的七大经典排序算法
1.冒泡排序 比较相邻的元素。如果第一个比第二个大,就交换它们两个对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;针对所有的元素重复以上的步骤,除了最后一个;重复步骤1~3,直到排序完成。 2.选择排序 在未排序序列中找到最小(大】元素,存放到排序序列的起始...
C语言冒泡排序。
void main(){ int a[10];int i,j,t;printf("input 10 numbers:\\n");for(i=0;i<10;i++)scanf("%d",&a[i]);for(j=0;j<9;j++) \/*进行9次循环 实现9趟比较*\/ for(i=0;i<9-j;i++) \/*在每一趟中进行9-j次比较*\/ if(a[i]>a[i+1]) \/*相邻两个数比较,想降序只...
C语言冒泡排序法是什么?
冒泡排序法,是C语言常用的排序算法之一,意思是对一组数字进行从大到小或者从小到大排序的一种算法。具体方法是:相邻数值两两交换。从第一个数值开始,如果相邻两个数的排列顺序与我们的期望不同,则将两个数的位置进行交换(对调);如果其与我们的期望一致,则不用交换。重复这样的过程,一直到最...
c语言冒泡排序
冒泡排序就是把小的元素往前调或者把大的元素往后调:比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,是不会再交换的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改变,所以冒泡排序是一...
c语言怎么做冒泡排序啊?
使用冒泡排序法进行编程:解释:1.第一个for循环:利用数组循环输入4个变量。2.第二个for循环:该循环的意思是如果a[0]>a[1]的话,两个变量的值交换,利用循环依次比较。要注意的是i<3,因为其中有i+1,i最大取到2,也就是i+1最大取到3才正确。3.第三个for循环:利用循环依次输出排序后的...
C语言中冒泡排序法和选择排序法有哪些不同
1、冒泡排序法:一趟一趟的将两个相邻的数进行交换如果有10个数则需要排9躺,如果是从 大到小输出则需要每次将后一个数和前一个数进行比较将较大的数赋值给钱一个数,将较小的数赋值给后一个数,其实就是两个数交换,那么第一趟交换完毕后,最 小的数便出现在了数组的最后面,然后进行第二趟...
冒泡排序法是如何排序的???
它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。冒泡排序算法的原理如下:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对...
C语言冒泡排序法代码是什么?
所谓冒泡排序法,就是对一组数字进行从大到小或者从小到大排序的一种算法。1、具体方法是,相邻数值两两交换。从第一个数值开始,如果相邻两个数的排列顺序与我们的期望不同,则将两个数的位置进行交换(对调);如果其与我们的期望一致,则不用交换。重复这样的过程,一直到最后没有数值需要交换,则...
c语言 使用冒泡排序将一维数组A中的N个元素升序排列
2013-06-03 急:C语言中用冒泡发对10个一维数组按从小到大顺序排序,并输... 5 2013-01-13 C语言将冒泡排序(或选择排序)改造成函数,实现对一个一维数组... 4 2013-05-19 用c语言 输入一个6个元素的数组,请分别用冒泡法和选择法对数... 17 2016-05-08 C语言编程题 题目描述 使用冒泡排序法对...
百蓓吡喹: 冒泡排序每一趟排序把最大的放在最右边. 比如: 87 12 56 45 78 87和12交换:12 87 56 45 78 87和56交换: 56 87 45 78 87和45交换: 45 87 78 87和78交换: 78 87 到此第一趟排序结束,接下来的每一趟排序都是这样.1 2 3 4 5 6 7 8 9 ...
镶黄旗13821156533: C语言用冒泡法输入一个字符升序排列 急! - ?
百蓓吡喹: #include <iostream.h>#include <string.h>#include <stdio.h>#include <stdlib.h>/* 冒泡排序法 */ void Bublesort(char a[],int n) { int i,j; char k; for(j=0;j<n;j++) /* 气泡法要排序n次*/ { for(i=0;i<n-j;i++) /* 值比较大的元素沉下去后,只把剩下的元素中的...
镶黄旗13821156533: 求一个C语言冒泡排序法的简单程序 - ?
百蓓吡喹: main() { inti,j,temp; inta[10]; for(i=0;i<10;i++) scanf("%d,",&a[i]); for(j=0;j<=9;j++) {for(i=0;i<10-j;i++) if(a[i]>a[i+1]) {temp=a[i]; a[i]=a[i+1]; a[i+1]=temp;} } for(i=1;i<11;i++) printf("%5d,",a[i]); printf("\n"); } -------------- 冒泡算法 冒泡排序的算法分...
镶黄旗13821156533: 急需一个用C语言函数写的冒泡排序法,最好是可以排数字也可以排字母 - ?
百蓓吡喹: #include#include void mao_pao(int *a,int n) { int i,j,temp,flag; for(i=0;i { flag=0; for(j=0;j { if(a[j]>a[j+1]) { flag=1; temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } } void main() { int *a,i,n; a=(int *)malloc(100); if(NULL==a) { printf("allocation failture\n"); exit(1); } ...
镶黄旗13821156533: C语言冒泡排序法是怎么排序的? - ?
百蓓吡喹: C语言冒泡排序法的排2113序规则:5261将被排序的记录4102数组R[1..n]垂直排列,每个记录R看作是重量为R.key的气泡1653.根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就使其向上"飘浮"...
镶黄旗13821156533: c语言的冒泡排序 - ?
百蓓吡喹: #include <iostream> using namespace std; int main() { int a[11];int i,j,k;for(i=0;i<10;i++)cin>>a[i]; for(i=0;i<10;i++)for(j=i+1;j<10;j++) //注意这里j=i+1if(a[i]<a[j]){k=a[i];a[i]=a[j];a[j]=k;} for(k=0;k<10;k++)cout<<a[k]<<","; system("pause"); return 0; }
镶黄旗13821156533: 急!!C语言冒泡排序编程 - ?
百蓓吡喹: #include <stdio.h> #define MAX_ROW 15 #define MAX_COLUMN 10 void sort(int array[], int count, int arrayIndex) { int compareCount = 0; int moveCount = 0; for(int i=0; i<count;i++) { for(int j=i + 1;j<count; j++) { compareCount++; if(array[i] > array[j])...
镶黄旗13821156533: C语言数组冒泡排序法题目求解 - ?
百蓓吡喹: 展开全部#include "stdio.h" void main() { int Acad[5]={6001,6002,6003,6004,6005}, Math[5]={89,90,84,74,85}, English[5]={84,95,87,85,95}, VC[5]={70,94,85,91,76}, ASP[5]={85,83,70,79,80}, total[5]={0,0,0,0,0}, sort[5]={1,2,3,4,5}; char Name[5][6]...
镶黄旗13821156533: 请讲解下C语言的冒泡排序法 - ?
百蓓吡喹: 冒泡法,就是通过多次循环排序的一种方法. 第一次循环,让最小(最大)的值浮到第一位, 第二次循环,让剩余的数字中最小(最大)浮到第二位 依次类推. 这种方法就像水泡上浮一样,顾名.
镶黄旗13821156533: c语言冒泡排序详解 - ?
百蓓吡喹: #include#define MAXE 20 typedef char KeyType; typedef char InfoType[10]; typedef struct { KeyType key; InfoType data; }RecType; void bubblesort(RecType R[],int n) { int i,j,k; RecType temp; for(i = 0; i i;i--) if(R[j].key