任务代码:
数字的排序:
# include & lt; stdio.h> #定义10码 int main () { int(大小)={67年12日,43岁,9日,13日,98101年,89年,3,35},//十个数的无序数列 int i, j, t; printf("此程序使用冒泡排序法排列无序数列! \ n”);//冒泡排序 的赔率(i=0; i<;我+ +)//n个数的数列总共扫描n - 1次 { (j=0; j<10-i-1; j + +)//每一趟扫描到一个[n-i-2]与[n-i-1]比较为止结束 { 如果([j]在[j + 1)//后一位数比前一位数小的话,就交换两个数的位置(升序) { t=[j + 1); [j + 1]=[j]; 一个[j]=t; } } } printf("排列好的数列是:\ n”);//输出排列好得吃数列 (i=0; i<10;我+ +) { printf (" % d”,[我]); } 返回0; }
字符排序:
# include & lt; stdio.h> #定义10码 int main () { char(大小)={‘我’,‘l’,‘o’,‘v’,‘e’,‘y’,‘o’,‘你’,‘y’,‘x’},//十个数的无序数列 int i, j。 char t; printf("此程序使用冒泡排序法排列无序数列! \ n”);//冒泡排序 的赔率(i=0; i<;我+ +)//n个数的数列总共扫描n - 1次 { (j=0; j<10-i-1; j + +)//每一趟扫描到一个[n-i-2]与[n-i-1]比较为止结束 { 如果([j]在[j + 1)//后一位数比前一位数小的话,就交换两个数的位置(升序) { t=[j + 1); [j + 1]=[j]; 一个[j]=t; } } } printf("排列好的字符组是:\ n”);//输出排列好得吃数列 (i=0; i<10;我+ +) { printf (" % c”,[我]); } 返回0; }
用函数来解决这个问题:
# include & lt; stdio.h> 无效的函数(char [], int);//尤其注意,此处的函数声明必须是char[],因为这里穿的是地址,不能仅仅使用char int main () { int我; char[10]={‘我’,‘l’,‘o’,‘v’,‘e’,‘y’,‘o’,‘你’,‘y’,‘x’},//十个数的无序字符数列 printf("此程序使用冒泡排序法排列无序数列! \ n”); 函数(10);//调用冒泡排序 printf("排列好的字符组是:\ n”);//输出排列好得吃数列 (i=0; i<10;我+ +) { printf (" % c”,[我]); } 返回0; } void函数(char [], int米) {//冒泡排序 int i, j。 char t; (i=0; i执行情况:
知识总结:
冒泡排序法:也叫升序排序法,但是相比起二分法查找只能应用于有序数列,二如何将一个无序数列变的有序就可以使用冒泡排序法! ! !
对上面的过程进行总结:
该思想体现在成续上的解法是:
实例:
冒泡排序不仅仅可以应用于数字同样可以应用于字符字母的快速排序:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
C语言冒泡排序法的实现(升序排序法)