冒泡排序
来源:互联网 发布:在淘宝好评返现违规吗 编辑:程序博客网 时间:2024/06/06 18:44
一. 算法描述
冒泡排序:依次比较相邻的数据,将小数据放在前,大数据放在后;即第一趟先比较第1个和第2个数,大数在后,小数在前,再比较第2个数与第3个数,大数在后,小数在前,以此类推则将最大的数"滚动"到最后一个位置;第二趟则将次大的数滚动到倒数第二个位置......第n-1(n为无序数据的个数)趟即能完成排序。
init01234<span style="white-space:pre"></span>5<span style="white-space:pre"></span>67<span style="white-space:pre"></span>8<span style="white-space:pre"></span>9--------------------------------------------------------------------------3 55 1 232 11 6 9 8 1 10 3 1 55 232 11 6 9 8 1 10 3 1 55 11 232 6 9 8 1 10 3 1 55 11 6 232 9 8 1 10 3 1 55 11 6 9 232 8 1 10 3 1 55 11 6 9 8 232 1 10 3 1 55 11 6 9 8 1 232 10 3 1 55 11 6 9 8 1 10 232 1 3 55 11 6 9 8 1 10 232 1 3 11 55 6 9 8 1 10 232 1 3 11 6 55 9 8 1 10 232 1 3 11 6 9 55 8 1 10 232 1 3 11 6 9 8 55 1 10 232 1 3 11 6 9 8 1 55 10 232 1 3 11 6 9 8 1 10 55 232 1 3 6 11 9 8 1 10 55 232 1 3 6 9 11 8 1 10 55 232 1 3 6 9 8 11 1 10 55 232 1 3 6 9 8 1 11 10 55 232 1 3 6 9 8 1 10 11 55 232 1 3 6 8 9 1 10 11 55 232 1 3 6 8 1 9 10 11 55 232 1 3 6 1 8 9 10 11 55 232 1 3 1 6 8 9 10 11 55 232 1 1 3 6 8 9 10 11 55 232 done1 1 3 6 8 9 10 11 55 232
二. 算法分析
平均时间复杂度:O(n2)
空间复杂度:O(1) (用于交换)
稳定性:稳定
三. 算法实现
#include <stdlib.h>#include <stdio.h>#include "print.c"//交换data1和data2所指向的整形void DataSwap(int* data1, int* data2){int temp = *data1;*data1 = *data2;*data2 = temp;}/******************************************************** * *函数名称:BubbleSort * *参数说明:pDataArray 无序数组; * * iDataNum为无序数据个数 * *说明: 冒泡排序 * *********************************************************/void BubbleSort(int* pDataArray, int iDataNum){int i = 0, j = 0;for (i = 0; i < iDataNum - 1; i++) //走iDataNum-1趟{for (j = 0; j < iDataNum - i - 1; j++) {if (pDataArray[j] > pDataArray[j + 1]){DataSwap(&pDataArray[j], &pDataArray[j + 1]);print(pDataArray, iDataNum);}}}}int main(){int iDataNum = 10;int pDatas[10] = {3,55,1,232,11,6,9,8,1,10};printf("init\n"); print(pDatas, iDataNum);BubbleSort(pDatas, iDataNum);printf("\ndone\n"); print(pDatas, iDataNum);}
参考文章:http://blog.csdn.net/cjf_iceking/article/details/7911027
0 0
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 菜鸟学自动化测试(一)----selenium IDE
- spring 拦截器 MethodInterceptor 配置 config aop
- 菜鸟学自动化测试(二)----selenium IDE 功能扩展
- 页面调用
- select into 和 insert into select 两种表复制语句
- 冒泡排序
- poj2778 DNA Sequence(AC自动机+矩阵快速幂 )
- namenode倒换原因分析
- javascript一些面试常用的问题总结
- python hook监听事件
- Android之MediaStore使用的点点滴滴
- 解决Android Studio 和 Android SDK Manager 无法在线更新的问题.
- 链表的基本操作与文件操作--期末大作业代码部分
- 博客的开始,积累的开始