冒泡排序改进算法(双向起泡)
2015-05-17 15:08
316 查看
#include <stdio.h> void TwoBubbleSort(int *Array ,int n); void TwoBubbleSort(int *Array ,int n) { int topmin=0; int bottommax=n; int mmin=0,mmax=0; int i=0; int a=0; while(topmin<bottommax) { mmin=0; mmax=0; for(i=topmin;i<bottommax;i++) { if(*(Array+i)>*(Array+i+1)) { a=*(Array+i); *(Array+i)=*(Array+i+1); *(Array+i+1)=a; mmax=i; } } if(mmax==0) break; bottommax=mmax; for(i=bottommax-1;i>topmin;i--) { if(*(Array+i)<*(Array-1+i)) { a=*(Array+i); *(Array+i)=*(Array+i-1); *(Array+i-1)=a; mmin=i; } } if(mmin==0) break; topmin=mmin; } } int main(void) { int array[8]={1,2,3,9,8,7,54,1}; int i=0; printf("待排数组为:\n"); for(i=0;i<8;i++) printf("%d ",*(array+i)); printf("\n冒泡排序后的数组:\n"); TwoBubbleSort(array,8); for(i=0;i<8;i++) printf("%d ",*(array+i)); return 0; }
相关文章推荐
- 冒泡排序的算法分析与改进
- 冒泡排序的算法分析与改进 (选择自 Uncommon 的 Blog )
- 冒泡排序及其改进算法
- 冒泡排序的算法分析与改进
- 冒泡排序及其改进算法
- 冒泡排序的算法分析与改进
- 冒泡排序的算法分析与改进
- 冒泡排序的算法分析与改进
- 【数据结构与算法】内部排序之二:冒泡排序和选择排序(改进优化,附完整源码)
- 冒泡排序的算法分析与改进(转载)
- 改进后的冒泡排序(单向起泡)
- 冒泡排序的算法分析与改进
- 冒泡排序及其改进算法
- 冒泡算法改进--双向冒泡算法 Double Bubble
- PHP算法学习之“简单的交换排序”,“冒泡排序”以及“改进后的冒泡排序”
- 算法学习之排序——冒泡排序及其改进算法(Java)
- 常用排序算法之一:三种常用的冒泡排序的改进算法。
- 冒泡算法改进--双向冒泡算法 Double Bubble
- 改进版的冒泡排序(双向冒泡算法)
- 冒泡排序的改进算法