冒泡排序

来源:互联网 发布:淘宝店铺怎么起名字 编辑:程序博客网 时间:2024/05/17 03:43
/*冒泡排序: (最大n-1轮排序)每次循环从第1个元素开始,不停地比较相邻的元素,如果不满足排序要求,就交换相邻元素,直到所有的元素都已经排好序为止。*/#include <iostream>#include <time.h>using namespace std;#define N 16void PrintArr(int *pnArr, int nLen){int i;for (i = 0; i < nLen; i++){cout<<pnArr[i]<<" ";}cout<<endl;}//从小到大排序void BubbleSort(int *pnArr, int nLen){int i, j;bool bExchange = false;//标志位,减少外层循环次数for (i = 0; i < nLen - 1; i++){for (j = 0; j < nLen - i - 1; j++)//注意j每次都是从0开始递增{if (pnArr[j] > pnArr[j+1]){swap(pnArr[j], pnArr[j+1]);bExchange = true;}}if (!bExchange){break;}}}int main(){int nArr[N] = {0};int i;srand(time(NULL));for (i = 0; i < N; i++){nArr[i] = rand() % 100;  //rand(nMax - nMin + 1) + nMin ----> [nMin, nMax]}PrintArr(nArr, N);BubbleSort(nArr, N);PrintArr(nArr, N);return 0;}


                                             
0 0
原创粉丝点击