//sort
//main.cpp
#include <iostream>
#include <iomanip>
//声明打印数组
void DisplayDataArray( int *, int);
//声明冒泡排序
void BubbleSort( int *, int);
//main函数
int main()
{
int test[6] = {12,34,2,56,4,89};
DisplayDataArray(test,6);
BubbleSort(test, 6);
DisplayDataArray(test,6);
return 0;
}
//打印数组
void DisplayDataArray( int *pDataArray, int Count)
{
for (int i = 0; i < Count; ++i)
{
std::cout <<std::setw(6)<< pDataArray[i];
}
std::cout << std::endl;
}
//冒泡排序
/*
算法:
从头两两比较,如有需要则交换,后面比较次数越来越少
以int型为例
*pDataArray: 传入的数组指针
Count: 数组的元素个数
eg. d[0],d[1],d[2],d[3], 4
*/
void BubbleSort( int *pDataArray, int count)
{
//向后冒泡排序
int tempData; //辅助空间
while (count > 1) //剩余的元素大于1个,继续排
{
for (int j = 0; j < count- 1; ++j)
{
if (pDataArray[j] > pDataArray[j + 1]) //从小到大排序
{
tempData = pDataArray[j];
pDataArray[j] = pDataArray[j + 1];
pDataArray[j + 1] = tempData;
}
}
--count; //排一遍后剩余元素
}
}