/* 冒泡排序: (最大n-1轮排序) 每次循环从第1个元素开始,不停地比较相邻的元素,如果不满足排序要求,就交换相邻元素,直到所有的元素都已经排好序为止。 */ #include <iostream> #include <time.h> using namespace std; #define N 16 void 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; }
冒泡排序
最新推荐文章于 2023-06-06 09:14:05 发布