📄 qs.h
字号:
#ifndef QS_H
#define QS_H
#include <iostream>
#include <string>
int op;
using namespace std;
template <class T>
class Q_S
{
private:
int Rendezd(int lent, int fent, T* tomb);
public:
void Quick_sort(T* t, int meret);
void Quick_sort(int lent, int fent, T* t);
};
class Node
{
public:
int ev, terfogat, fogyaszt, ar;
string marka;
bool operator <=(Node& e);
bool operator >=(Node& e);
};
ostream& operator << (ostream& os, Node e)
{
os << "ev: " << e.ev << ", terfogat: " << e.terfogat << ", fogyaszt: " << e.fogyaszt << ", ar: " << e.ar << ", marka: " << e.marka;
return os;
}
template <class T>
void Q_S<T>::Quick_sort (T* t, int meret)
{
Quick_sort(0, meret, t);
}
template <class T>
void Q_S<T>::Quick_sort (int lent, int fent, T* t)
{
int e;
if (lent < fent)
{
e = Rendezd(lent, fent, t);
Quick_sort(lent, e-1, t);
Quick_sort(e+1, fent, t);
}
}
template <class T>
int Q_S<T>::Rendezd (int lent, int fent, T* tomb)
{
int fent_csere,lent_csere;
T pivot;
lent_csere = (int)((lent+fent)/2);
pivot = tomb[lent_csere];
tomb[lent_csere] = tomb [lent];
tomb[lent] = pivot;
lent_csere = lent;
fent_csere = lent;
while( lent_csere < fent )
{
while ((pivot >= tomb[lent_csere]) && (lent_csere < fent))
{
lent_csere++;
}
while ((pivot <= tomb[fent]) && (fent > fent_csere))
{
fent--;
}
if(lent_csere < fent)
{
T temp = tomb[lent_csere];
tomb[lent_csere] = tomb[fent];
tomb[fent] = temp;
}
}
tomb[lent] = tomb[fent];
tomb[fent] = pivot;
return fent;
}
bool Node::operator <=(Node& e)
{
bool ok = false;
if ((op == 0) && (ev <= e.ev))
ok = true;
else if ((op == 1) && (terfogat <= e.terfogat))
ok = true;
else if ((op == 2) && (fogyaszt <= e.fogyaszt))
ok = true;
else if ((op == 3) && (ar <= e.ar))
ok = true;
else if ((op == 4) && (marka <= e.marka))
ok = true;
return ok;
}
bool Node::operator >=(Node& e)
{
bool ok = false;
if ((op == 0) && (ev >= e.ev))
ok = true;
else if ((op == 1) && (terfogat >= e.terfogat))
ok = true;
else if ((op == 2) && (fogyaszt >= e.fogyaszt))
ok = true;
else if ((op == 3) && (ar >= e.ar))
ok = true;
else if ((op == 4) && (marka >= e.marka))
ok = true;
return ok;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -