C语言的冒泡排序法

数字的排序:

#include"stdafx.h"
#include <stdio.h>

#define SIZE 10
int main()
{
int a[SIZE] = { 12 ,43,9,13,67,98,101,89,3,35 };//十个数的无序数列
int i, j, t;
printf("此程序使用冒泡排序法排列无序数列!\n");
//冒泡排序
for (i = 0; i<10 - 1; i++)//n个数的数列总共扫描n-1次
{
for (j = 0; j<10 - i - 1; j++)//每一趟扫描到a[n-i-2]与a[n-i-1]比较为止结束
{
if (a[j]>a[j + 1])//后一位数比前一位数小的话,就交换两个数的位置(升序)
{
t = a[j + 1];
a[j + 1] = a[j];
a[j] = t;
}
}
}

printf("排列好的数列是:\n");
//输出排列好得吃数列
for (i = 0; i<10; i++)
{

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

字符排序:

#include"stdafx.h"
#include <stdio.h>

#define SIZE 10
int main()
{
char a[SIZE] = { 'i','l','o','v','e','y','o','u','y','x' };//十个数的无序数列
int i, j;
char t;
printf("此程序使用冒泡排序法排列无序数列!\n");
//冒泡排序
for (i = 0; i<10 - 1; i++)//n个数的数列总共扫描n-1次
{
for (j = 0; j<10 - i - 1; j++)//每一趟扫描到a[n-i-2]与a[n-i-1]比较为止结束
{
if (a[j]>a[j + 1])//后一位数比前一位数小的话,就交换两个数的位置(升序)
{
t = a[j + 1];
a[j + 1] = a[j];
a[j] = t;
}
}
}

printf("排列好的字符组是:\n");
//输出排列好得吃数列
for (i = 0; i<10; i++)
{

printf("%c ", a[i]);
}
getchar();
}

函数

#include"stdafx.h"
#include <stdio.h>
void function(char a[], int);//尤其注意,此处的函数声明必须是char a[],因为这里穿的是地址,不能仅仅使用char
int main()
{
int i;
char a[10] = { 'i','l','o','v','e','y','o','u','y','x' };//十个数的无序字符数列
printf("此程序使用冒泡排序法排列无序数列!\n");
function(a, 10);//调用冒泡排序
printf("排列好的字符组是:\n");
//输出排列好得吃数列
for (i = 0; i<10; i++)
{

printf("%c ", a[i]);
}
return 0;
}
void function(char a[], int m)
{
//冒泡排序
int i, j;
char t;
for (i = 0; i<m - 1; i++)//n个数的数列总共扫描n-1次
{
for (j = 0; j<m - i - 1; j++)//每一趟扫描到a[n-i-2]与a[n-i-1]比较为止结束
{
if (a[j]>a[j + 1])//后一位数比前一位数小的话,就交换两个数的位置(升序)
{
t = a[j + 1];
a[j + 1] = a[j];
a[j] = t;
}
}
}
getchar();
}

作者:Geek宝宝
来源:CSDN
原文:https ://blog.csdn.net/Zzwtyds/article/details/76155893
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自www.cnblogs.com/WYlover/p/10729696.html