请教排序算法 有一组数据,放在一个数组里,如何得到他们从小到大的顺序。例如:20,32,14,25,61,7,5,12,15那么得到的数组是:6,8,4,7,9,2,1,3,5 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ???============================================================================提问题时标题要简明扼要地说明问题内容,切忌使用"急","求救"之类不能说明问题的标题http://www.betajin.com/alphasun/index.htm 给我发信息请附带原帖地址http://alphasun.18en.com/ http://shakingtoolkit.9126.com/DocWizard C++程序文档自动生成工具 | Wave OpenGL | HttpProxy | AjaxParser词法分析 我猜出来了. :)新建一个同样大的数组 p[1]=1,p[2]=2,... 排序时同步一下,结果就在 p[]里面了. #include <vector>#include <functional>#include <algorithm>#include "iostream"using std::vector;class Data{public: Data(int a,int b):m_data(a),m_index(b) { } operator int() { return m_data; } int GetIndex() { return m_index; } int GetValue() { return m_data; }private: int m_data; int m_index;};inline bool my_data_less(Data& x,Data& y){ return x.GetValue() < y.GetValue(); };int main(int argc, char* argv[]){ vector<Data> srcdata; int unsortarray[]={20,32,14,25,61,7,5,12,15 }; for(int i=0;i<sizeof(unsortarray)/sizeof(unsortarray[0]);i++) srcdata.push_back(Data(unsortarray[i],i+1)); std::sort(srcdata.begin(),srcdata.end(),my_data_less); for(std::vector<Data>::const_iterator it=srcdata.begin();it!=srcdata.end();it++) { Data data=*it; std::cout<<"index:"<<data.GetIndex()<<",\t value:"<<data.GetValue()<<std::endl; } return 0;} 求解 请教一个关于SDK的小问题 请问如何将EXCEL报表中的数据用MSCHART绘制出来? 为什么框架窗口无法处理键盘事件??? 如何用c++实现线程 初学者求助!!! 用什么样的桌面数据库比较好? 此贴在《VB》《硬件使用》《硬件开发》三论谈上都不能解决!!!!高手请进!!! VC++中写程序时编绎时提示出错了,怎么就没有出错在哪里的提示? quickpatch!!!!!!!!!!!!!!! 请问如何把c语言搞成vc?谢谢 送分:请教DIB位图处理:如何处理鼠标在图片内拖动选取区域再显示该区域
============================================================================
提问题时标题要简明扼要地说明问题内容,切忌使用"急","求救"之类不能说明问题的标题
http://www.betajin.com/alphasun/index.htm 给我发信息请附带原帖地址
http://alphasun.18en.com/ http://shakingtoolkit.9126.com/
DocWizard C++程序文档自动生成工具 | Wave OpenGL | HttpProxy | AjaxParser词法分析
新建一个同样大的数组 p[1]=1,p[2]=2,... 排序时同步一下,结果就在 p[]里面了.
#include <functional>
#include <algorithm>
#include "iostream"
using std::vector;
class Data
{
public:
Data(int a,int b):m_data(a),m_index(b)
{ }
operator int()
{
return m_data;
}
int GetIndex()
{
return m_index;
}
int GetValue()
{
return m_data;
}
private:
int m_data;
int m_index;};
inline bool my_data_less(Data& x,Data& y)
{ return x.GetValue() < y.GetValue(); };
int main(int argc, char* argv[])
{
vector<Data> srcdata;
int unsortarray[]={20,32,14,25,61,7,5,12,15 };
for(int i=0;i<sizeof(unsortarray)/sizeof(unsortarray[0]);i++)
srcdata.push_back(Data(unsortarray[i],i+1));
std::sort(srcdata.begin(),srcdata.end(),my_data_less);
for(std::vector<Data>::const_iterator it=srcdata.begin();it!=srcdata.end();it++)
{
Data data=*it;
std::cout<<"index:"<<data.GetIndex()<<",\t value:"<<data.GetValue()<<std::endl;
}
return 0;
}