冒泡排序就是拿第一个数和后面所有数一一相比,然后将最大的放在最后,然后再拿第二个数和后面一一相比将第二大的放在倒数第二的位置。。。一直到全部比较完,就排好序了,好比冒泡一样小的数向上走,大的数向下走。快速排序是选择一组数中的一个(一般是第一个),和其他所有的比,比它大的放在一边,比它小的放在另一边,然后将两边的数再用这个原理,比如将左边的数选择第一个来和左边其他数相比,小的放在一边大的放在另一边。右边的数也是如此。。。最后多来几遍循环也就排好序了。
具体代码如下:
1 //i从[0,nLen-1)开始冒泡,确定第i个元素
2 for (int i = 0; i < nLen - 1 ; ++i)
3 {
4
5
6 //从[nLen - 1, i)检查是否比上面一个小,把小的冒泡浮上去
7 for (int j = nLen- 1; j > i; --j)
8 {
9 if (pnData[j] < pnData[j - 1]) //如果下面的比上面小,交换
10 {
11 int nTemp = pnData[j];
12 pnData[j] = pnData[j - 1];
13 pnData[j - 1] = nTemp;