本文目录一览:
- 1、输入10个数,用冒泡排序法按由小到大顺序排序并输出??c语言的
- 2、求 c语言选择排序法和 冒泡排序法代码?
- 3、冒泡排序的C语言代码
- 4、C语言冒泡排序法代码
- 5、C语言冒泡排序法代码是什么?
- 6、C语言中选择排序法和冒泡排序法代码。
输入10个数,用冒泡排序法按由小到大顺序排序并输出??c语言的
如下参考:
#包括 stdio, h
Intmain()
{
Inta[10]={0};
IntI=0,j=0,t=0;
For (I = 0;我 10;我+ +)
{scanf (" % d ", a [I]);}
For (I = 0;我 10;我+ +)
{for (j = 0;J 10 - I;J + +) {
If (a [j] a [j + 1))
{
T=a,[j]。
A[j]=A,A+1加到[j]。
A[m+1]=t;
}}}
For (I = 0;我 10;我+ +)
{printf("%d",a[I]);}
返回0;}
任意输入10个数据,程序运行:
扩展资料:
冒泡排序算法的复杂原理如下:
1.比较相邻metaelements。如果第一个比第二个大,就交换它们。
2.对每一对相邻的元素执行相同的操作,从第一对开始,到最后一对结束。此时,最后一个元素应该是最大的数。
3.对除最后一个元素之外的所有元素重复上述步骤。
4.每次对越来越少的元素重复上述步骤,直到没有一对数字可供比较。
求 c语言选择排序法和 冒泡排序法代码?
冒泡排序法的具体实现方法是这样的,从数组的第一个元素`arr[0]`开始,两两比较**(`arr[n],arr[n+1]`),如果前面的数大于后面的数(`arr[n] arr[n+1]`),那么交换两个元素的位置,把大的数往后移动。这样依次经过一轮比较以后,最大的数将会被交换到最后的位置(arr[n-1])。
C语言实现Bubblesort:
void bubblesort(int a[], int m)
{
int i,j;
int tmp;
int flag = 0; //设定标志,如果第一次循环比较时没有发生交换,则说明数组是升序排序,不用排序,提前结束循环。
for(i = 0; i m; i++) //外层循环控制循环次数
{
for(j = 0; j m-1-i; j++) //内层循环控制每次循环里比较的次数。
{
if(a[j] a[j+1])
{
tmp = a[j];
a[j] = a[j+1];
a[j+1] = tmp;
flag = 1;
}
}
if(0 == flag)
{
printf("No Sort\n");
break;
}
}
}
选择排序法的过程是,通**过比较,选择出每一轮中最值元素,然后把他和这一轮中最最前面的元素交换**,所以这个算法关键是要记录每次比较的结果,即每次比较后最值位置(下标)。
C语言实现(Selectionsort)
void selectionsort(int a[],int m)
{
int i,j;
int k;
int tmp;
for(i = 0; i m-1; i++)//控制循环次数,n个数需要n-1次循环
{
k = i;
for(j = i+1; j m ; j++)
{
if(a[j] a[k])
k = j;
}
//i不等于k是就证明a[i]不是最小的,
//i等于k时证明a[i]就是本轮比较过程中最小的值
if(i != k)
{
tmp = a[i];
a[i] = a[k];
a[k] = tmp;
}
}
}
冒泡排序的C语言代码
程序如下:
# include malloc.h
# include stdio.h
int main(void)
{
int i, j, t,num;
int * p;
printf("请输入要排序的数的个数:num=");
scanf("%d", num);
p= (int *)malloc(num* sizeof(int));
//输入要排序的数
for (i=0; inum; ++i)
{
printf("请输入第%d个要排序的数p[%d]=\n", i+1,i);
scanf("%d", p[i]);
}
//冒泡排序
for (i=0; inum-1; ++i)
{
for (j=0; jnum-1-i; ++j)
{
if (p[j] p[j+1]) // 表示升序 表示降序
{
t = p[j];
p[j] = p[j+1];
p[j+1] = t;
}
}
}
//输出已经排序好的数
printf("输出已经排序好的数");
for (i=0; inum; ++i)
{
printf("%d ", p[i]);
}
printf("\n");
return 0;
}
程序运行结果:
随机输入十个数:
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
到此第一趟排序结束,接下来的每一趟排序都是这样。
#includestdio.h
void Print(int *num, int n)
{
int i;
for(i = 0; i n; i++)
printf("%d ", num[i]);
puts("\n");
return;
}
void Bubble_Sort(int *num, int n)
{
int i, j;
for(i = 0; i n; i++)
{
for(j = 0; i + j n - 1; j++)
{
if(num[j] num[j + 1])
{
int temp = num[j];
num[j] = num[j + 1];
num[j + 1] = temp;
}
Print(num, n);
}
}
return;
}
int main()
{
int num[8] = {87, 12, 56, 45, 78};
Bubble_Sort(num, 5);
return 0;
}
C语言冒泡排序法代码是什么?
所谓冒泡排序法,就是对一组数字进行从大到小或者从小到大排序的一种算法。
1、具体方法是,相邻数值两两交换。从第一个数值开始,如果相邻两个数的排列顺序与我们的期望不同,则将两个数的位置进行交换(对调);如果其与我们的期望一致,则不用交换。重复这样的过程,一直到最后没有数值需要交换,则排序完成。具体情况如下图所示:
2、为了实现效果,我们得先定义一组待排序的数列以及各个变量。具体情况如下图:
3、算法的实现,具体情况如图:
4、运行结果显示。具体情况如图:
5、按照上面的程序,在第五趟(i=5)起泡时,计算机不仅要对“1,5,6,4”两两进行比较并排序,还要对“7,8,9,13”进行两两比较并排序,而“7,8,9,13”在第四趟起泡时就已经排序好了,所以再进行比较的话,就显得非常多余。图示如下:
6、在上面程序的基础上进行优化。具体情况如图所示:
7、优化后的输出结果。如图所示:
C语言中选择排序法和冒泡排序法代码。
选择排序:
void select_sort(int a[],int n) //传入数组的要排序的元素个数
{int i,j,min,t;
for(i=0;in-1;i++)
{ min=i; //min:当前最小值下标
for(j=i+1;jn;j++) //扫描余下的部分
if(a[min]a[j]) //若有其它元素更小,就记录其下标
min=j;
if(min!=i) //保若最小值不在排序区首位,就换到首位
{t=a[min]; a[min]=a[i]; a[i]=t;}
}
}
冒泡排序:
void bubble_sort(int a[], int n) //传入数组的要排序的元素个数
{ int i, j, t;
for (j=0; jn-1; j++) //n个元素比较n-1轮
for (i= 0; in-1-j;i++) //比较相信的两个数
if(a[i]a[i+1]) //若大小顺序不符,就交换
{t=a[i]; a[i]=a[i+1]; a[i+1]=t;
}