找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 747|回复: 8

[求助]:[求助]:如何对点数组进行排序

[复制链接]
发表于 2005-4-29 14:15:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
对于由点组成的数组,请问如何按照坐标点的X(或Y、Z)数值大小进行排序?!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-4-29 23:52:56 | 显示全部楼层
冒泡排序,冒一圈就出来了,到网上搜索算法,好多的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-30 14:46:06 | 显示全部楼层
用stl(标准库,中的sort,二分排序,最快的),如果不明白,我给你做个离子。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-30 15:54:09 | 显示全部楼层
我也用的冒泡法,很实用,但比较慢

还请z999999[/COLOR] 做个示例!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-30 20:42:09 | 显示全部楼层

  1. // from small to big
  2. void sort_pts_xyz (ads_point pts[], int xyz, int num)
  3. {
  4.     ads_point  *px;
  5.     ads_real    rr;
  6.     int   i, j, gap;


  7.     px = &pts[0];
  8.     if (num  <  2) return;

  9.     for (gap = num/2; gap > 0; gap /= 2)
  10.     {
  11.         for (i=gap; i < num; i++)
  12.         {
  13.             for (j = i-gap; j >= 0 && px[j][xyz] > px[j +gap][xyz]; j -= gap)
  14.             {
  15.                 rr = px[j][xyz];
  16.                 px[j][xyz] = px[j +gap][xyz];
  17.                 px[j + gap][xyz] = rr;
  18.             }
  19.         }
  20.     }
  21. }
复制代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-5-4 15:55:32 | 显示全部楼层
我也急着用这个了。谢谢了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-5 11:23:32 | 显示全部楼层
感谢诸公鼎立帮助!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-5-6 08:56:36 | 显示全部楼层
用stl的sort,自己写个比较函数就行了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-5-6 11:35:42 | 显示全部楼层
1978要离子:


#include <vector>
#include <algorithm>


struct SXYZ{
        float x,y,z;
        void print(){
                printf("%0.3f, %0.3f, %0.3f\r\n", x, y,z);
        }
};

struct SSort1{
        BOOL operator()(SXYZ& p1, SXYZ& p2){
                BOOL isE = FALSE;
                BOOL backNum;
                ////x;
                backNum = compare(p1.x, p2.x, isE);
                if(!isE)return backNum;
                ////y;
                isE = FALSE;
                backNum = compare(p1.y, p2.y, isE);
                if(!isE)return backNum;
                ////z:               
                return compare(p1.z, p2.z, isE);               
        }
        BOOL compare(float n1, float n2, BOOL& isE){
                if(n1>n2)return FALSE;
                if(n1<n2)return TRUE;
                isE = TRUE;
                return FALSE;
        }
};


void main(){
        std::vector<SXYZ> datas;
        SXYZ p1 = {2,1,1};
        SXYZ p2 = {2,0,1};
        SXYZ p3 = {1,1,1};

        datas.resize(3);
        datas[0] = p1;
        datas[1] = p2;
        datas[2] = p3;

        std::sort(datas.begin(), datas.end(), SSort1());

        for(long i=0; i<3; i++){
                datas.print();
        }       
               
}

/*
---------- c run ----------
1.000, 1.000, 1.000
2.000, 0.000, 1.000
2.000, 1.000, 1.000
Normal Termination
Output completed (0 sec consumed).
*/
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-16 13:38 , Processed in 0.252018 second(s), 47 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表