赞
踩
1.基本思想:
从小到大的冒泡排序是每次从头开始,两两比较,将较大的数放在两个数中的后面一位,循环此过程,将最大的数放在最后的位置;接着再从头开始两两比较,找到第二大的数;如果有n个数,则循环n次便能将无序的记录变成有序的记录。
这个过程存在两层循环,其一,两两比较的循环;其二是“是第几趟的循环”。
2.C语言算法实现:
#include<stdio.h> int r[6]={6,3,7,2,5,4}; void BubbleSort(int length) { int i,j,temp; for(j=5;j>=0;j--) //是第j趟循环 for(i=0;i<j;i++) //在第j趟循环中将每两个数进行比较 { if(r[i]>r[i+1]) //由小到大排序 { temp=r[i]; //将较大的数放在后面 r[i]=r[i+1]; r[i+1]=temp; } } } int main() { int i; BubbleSort(6); for(i=0;i<6;i++) printf("%d",r[i]); }
3.算法分析:
稳定。
最好情况:待排序列是有小到大的顺序;最差情况:逆序。
时间复杂度:O(n²);空间复杂度:O(1)。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。