博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
常用算法-冒泡排序代码实现
阅读量:4045 次
发布时间:2019-05-24

本文共 1589 字,大约阅读时间需要 5 分钟。

冒泡排序的基本原理就是:两两比较,较小的放到前面,较大的放到后面.

/* 冒泡法 */#include 
//函数声明void sortArray(int array[],int length);int main(int argc, const char * argv[]) { // insert code here... //定义数组 int array[] = {
16,98,56,34,66,77}; //调用排序函数 sortArray(array, sizeof(array) / sizeof(int)); //打印排序后的数组 for (int i =0 ; i < sizeof(array) / sizeof(int); i++) { printf("%d ",array[i]); } printf("\n"); return 0;}//冒泡法(起泡法)实现void sortArray(int array[],int length){ //for循环 for (int i = 0; i < length - 1; i++) { for ( int j = 0; j < length - i -1; j++) { if (array[j] < array[j+1] ) { array[j] = array[j] + array[j+1]; array[j+1] = array[j] - array[j+1]; array[j] = array[j] - array[j+1]; } } }}

从上面的代码可以看出,外层循环 i,控制的是比较的趟数,内存循环 j 控制的是每趟比较的次数.

第一趟比较完,最大的数放到了最后,

第二趟比较的时候,找出次大的数,放在最大数前面一位,但是不会再讲最后的最大数纳入比较范围.
.
.
.
直到全部完成排序

当然冒泡排序还有其他写法:如

#include 
void swap(int *a, int *b); int main() { int array[10] = {
15, 225, 34, 42, 52, 6, 7856, 865, 954, 10}; int i, j; for (i = 0; i < 10; i++) { //每一次由底至上地上升 for (j = 9; j > i; j--) { if (array[j] < array[j-1]) { swap(&array[j], &array[j-1]); } } } for (i = 0; i < 10; i++) { printf("%d\n", array[i]); } return 0; } void swap(int *a, int *b) { int temp; temp = *a; *a = *b; *b = temp; }

这种写法,是第一次将最小的数放到最前面,第二次找出剩余数中最小的数,放到第二位 … 直到全部排序完毕

转载地址:http://rfwci.baihongyu.com/

你可能感兴趣的文章
qt5 everywhere编译完成后,找不到qmake
查看>>
qt 创建异形窗体
查看>>
可重入函数与不可重入函数
查看>>
简单Linux C线程池
查看>>
内存池
查看>>
输入设备节点自动生成
查看>>
GNU hello代码分析
查看>>
Qt继电器控制板代码
查看>>
wpa_supplicant控制脚本
查看>>
gstreamer相关工具集合
查看>>
RS232 四入四出模块控制代码
查看>>
gstreamer插件之 videotestsrc
查看>>
linux 驱动开发 头文件
查看>>
/etc/resolv.conf
查看>>
container_of()传入结构体中的成员,返回该结构体的首地址
查看>>
linux sfdisk partition
查看>>
ipconfig,ifconfig,iwconfig
查看>>
opensuse12.2 PL2303 minicom
查看>>
网络视频服务器移植
查看>>
Encoding Schemes
查看>>