#include <stdio.h>
#include <stdlib.h>
struct TYPE //结构定义
{
int value;
int index;
};
//int BubbleSort(TYPE* pnData, int nLen);//冒泡排序
//冒泡排序, pnData要排序的数据, nLen数据的个数
int BubbleSort(TYPE * pnData, int nLen)
{
bool isOk = false; //设置排序是否结束的哨兵
//i从[0,nLen-1)开始冒泡,确定第i个元素
for (int i = 0; i < nLen - 1 && !isOk; ++i)
{
isOk = true; //假定排序成功
//从[nLen - 1, i)检查是否比上面一个小,把小的冒泡浮上去
for (int j = nLen- 1; j > i; --j)
{
if (pnData[j].index < pnData[j - 1].index) //如果下面的比上面小,交换
{
int nTemp = pnData[j].index;
int nData=pnData[j].value;
pnData[j].index = pnData[j - 1].index;
pnData[j].value = pnData[j - 1].value;
pnData[j - 1].index = nTemp;
#include <stdlib.h>
struct TYPE //结构定义
{
int value;
int index;
};
//int BubbleSort(TYPE* pnData, int nLen);//冒泡排序
//冒泡排序, pnData要排序的数据, nLen数据的个数
int BubbleSort(TYPE * pnData, int nLen)
{
bool isOk = false; //设置排序是否结束的哨兵
//i从[0,nLen-1)开始冒泡,确定第i个元素
for (int i = 0; i < nLen - 1 && !isOk; ++i)
{
isOk = true; //假定排序成功
//从[nLen - 1, i)检查是否比上面一个小,把小的冒泡浮上去
for (int j = nLen- 1; j > i; --j)
{
if (pnData[j].index < pnData[j - 1].index) //如果下面的比上面小,交换
{
int nTemp = pnData[j].index;
int nData=pnData[j].value;
pnData[j].index = pnData[j - 1].index;
pnData[j].value = pnData[j - 1].value;
pnData[j - 1].index = nTemp;