寻找C++高手给我注释下

来源:百度知道 编辑:UC知道 时间:2024/05/04 11:42:45
下面是个数字排序过程,从小到大排序,但是我看不懂,希望哪位高手帮我注释下,最好详细点,还有就是我的指针很垃圾,详细点看得懂些
就是在每个语句后面写上"//*********"就是了,谢谢啊
程序如下
void tData::sortData()//定义排序函数
{
qsort(0, n-1, this); //调用"排序过程"
}

void qsort(int i, int j, tData *obj)//排序过程
{
if(i>=j)return;
int sd=obj->data[i];
int m=i, n=j;
i++;
while(true)
{
while((i<=n)&&(obj->data[i]<=sd))
i++;
while((j>=m)&&(obj->data[j]>sd))
j--;
if(i<j)
swap(obj->data[i],obj->data[j]);
else
{
swap(i, j);
break;
}
}
swap(obj->data[m], obj->data[i]);
qsort(m, i-1, obj);
qsort(j, n, obj);
}

/*-------------------------------------
这是快速排序的实现了历程,快速排序,顾名思义就是在实际中排序最快的办法
次排序过程是利用递归算法实现
不过很明显这个排序是很类对象联系在一起
你没有给我类的定义,我也只能粗略的帮你看下
你这个函数中data因该是一个公有成员数组,即
int data[],希望如果你下次再提问能给个始末,不然实在不好回答
关于快速排序的思想比较冗长,你可以查一下,这是一个学习递归的好例子,自己随便写个序列,按我的解释看,就因该能看懂了
*/
/*我把你这个无用的函数隐藏起来,构造一个满足题意的类来给你看看
void tData::sortData()//这是tData类的成员函数,相信因该是public属性的,排序接口
{
qsort(0, n-1, this); //调用"排序过程",即调用实际的快速排序算法
} =======================*/

#include <iostream>
using namespace std;

class tData
{
public:
tData();
void sortData();
int data[8];
void print()
{
for(int i=0;i<7;++i)
cout<<data[i];
}
friend void qsort(int i, int j, tData *obj);
};
tData::tData()
{
for(int i=7;i>=0;--i)
{
data[i]=8-i;
}
}
void tData::sortData()
{
qsort(0, 7, this);
}