鱼C论坛

 找回密码
 立即注册
查看: 4269|回复: 14

[技术交流] 各种排序(你懂的?)

[复制链接]
发表于 2011-7-6 14:34:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

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

x
本帖最后由 raotf 于 2011-7-22 19:22 编辑
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <Windows.h>
  4. #include <time.h>

  5. #define MAX 12345

  6. void data_shuchu(int* p,int leng);
  7. void data_fuzhi(int* p,int* data,int leng);
  8. void paixu_maopao(int* p,int leng);
  9. void paixu_xuanze(int* p,int leng);
  10. void paixu_charu(int* p,int leng);
  11. void paixu_kuaisu(int* p,int tou,int wei);
  12. int* paixu_guibing(int* p,int leng);
  13. int* guibing_hebing(int* zuo_data,int zuo_leng,int* you_data,int you_leng);
  14. int kuaisu_dingwei(int* p,int tou,int wei);
  15. double pk_paixu(int* p,int leng,char* paixu);


  16. void main()
  17. {

  18. int data[MAX];
  19. int p[MAX];
  20. int i;
  21. double yongshi;
  22. double paixu_time[5]={0};
  23. char* paixu_str[]={"插入排序","快速排序","归并排序","冒泡排序","选择排序"};

  24. srand(time(0));
  25. for(i=0;i<MAX;i++)
  26. data[i]=rand();

  27. for(i=0;i<10*5;i++)
  28. {
  29. if(0==i%5)
  30. printf("第%d轮:\n",i/5+1);

  31. data_fuzhi(p,data,MAX);
  32. //data_shuchu(p,MAX);
  33. yongshi=pk_paixu(p,MAX,paixu_str[i%5]);
  34. //data_shuchu(p,MAX);
  35. paixu_time[i%5]+=yongshi;
  36. printf("%s排序用时: %lf秒\n",paixu_str[i%5],yongshi);
  37. if(4==i%5)
  38. printf("\n");
  39. }

  40. for(int j=0;j<5;j++)
  41. printf("%s平均用时: %lf秒\n",paixu_str[j],paixu_time[j]/(i/5));

  42. getch();
  43. return;
  44. }


  45. double pk_paixu(int* p,int leng,char* paixu)
  46. {
  47. int* data;
  48. double t_avg;
  49. LONGLONG t1_long;
  50. LONGLONG t2_long;
  51. LARGE_INTEGER litmp;

  52. QueryPerformanceFrequency(&litmp);
  53. t_avg=litmp.QuadPart;

  54. QueryPerformanceCounter(&litmp);
  55. t1_long=litmp.QuadPart;

  56. if(!strcmp(paixu,"归并排序"))
  57. {
  58. data=paixu_guibing(p,leng);
  59. }
  60. else if(!strcmp(paixu,"冒泡排序"))
  61. {
  62. paixu_maopao(p,leng);
  63. }
  64. else if(!strcmp(paixu,"选择排序"))
  65. {
  66. paixu_xuanze(p,leng);
  67. }
  68. else if(!strcmp(paixu,"插入排序"))
  69. {
  70. paixu_charu(p,leng);
  71. }
  72. else if(!strcmp(paixu,"快速排序"))
  73. {
  74. paixu_kuaisu(p,0,leng-1);
  75. }

  76. QueryPerformanceCounter(&litmp);
  77. t2_long=litmp.QuadPart;


  78. if(!strcmp(paixu,"归并排序"))
  79. data_fuzhi(p,data,leng);

  80. return (t2_long-t1_long)/t_avg;
  81. }

  82. void data_shuchu(int* p,int leng)
  83. {
  84. for(int i=0;i<leng;i++)
  85. {
  86. if(i%10==0)
  87. printf("\n");
  88. printf("%d ",p[i]);
  89. }
  90. printf("\n");
  91. return;
  92. }

  93. void data_fuzhi(int*p,int* data,int leng)
  94. {
  95. for(int i=0;i<leng;i++)
  96. *(p+i)=*(data+i);
  97. return;
  98. }

  99. int* paixu_guibing(int* p,int leng)
  100. {
  101. if(leng<=1)
  102. return p;

  103. int zuo_leng=leng/2;
  104. int you_leng=leng-zuo_leng;
  105. int* zuo_data=new int[zuo_leng];
  106. int* you_data=new int[you_leng];

  107. for(int i=0;i<zuo_leng;i++)
  108. {
  109. *(zuo_data+i)=*(p+i);
  110. *(you_data+i)=*(p+i+zuo_leng);
  111. }
  112. if(0!=leng/2)
  113. *(you_data+you_leng-1)=*(p+leng-1);

  114. zuo_data=paixu_guibing(zuo_data,zuo_leng);
  115. you_data=paixu_guibing(you_data,you_leng);
  116. return guibing_hebing(zuo_data,zuo_leng,you_data,you_leng);
  117. }

  118. int* guibing_hebing(int* zuo_data,int zuo_leng,int* you_data,int you_leng)
  119. {
  120. int* data=new int[zuo_leng+you_leng];

  121. int zuo=0;
  122. int you=0;

  123. while(zuo<zuo_leng&&you<you_leng)
  124. {
  125. if(*(zuo_data+zuo)<=*(you_data+you))
  126. {
  127. *(data+zuo+you)=*(zuo_data+zuo);
  128. zuo++;
  129. }
  130. else
  131. {
  132. *(data+zuo+you)=*(you_data+you);
  133. you++;
  134. }
  135. }
  136. while(zuo<zuo_leng)
  137. data[zuo+you]=zuo_data[zuo++];
  138. while(you<you_leng)
  139. data[zuo+you]=you_data[you++];

  140. return data;
  141. }

  142. void paixu_kuaisu(int *p,int tou,int wei)
  143. {
  144. if(tou<wei)
  145. {
  146. int index=kuaisu_dingwei(p,tou,wei);
  147. paixu_kuaisu(p,tou,index-1);
  148. paixu_kuaisu(p,index+1,wei);
  149. }
  150. return;
  151. }

  152. int kuaisu_dingwei(int *p,int tou,int wei)
  153. {
  154. int data=p[tou+(wei-tou)/2];
  155. p[tou+(wei-tou)/2]=p[tou];

  156. while(tou<wei)
  157. {
  158. while(tou<wei&&*(p+wei)>=data)
  159. wei--;
  160. *(p+tou)=*(p+wei);

  161. while(tou<wei&&*(p+tou)<=data)
  162. tou++;
  163. *(p+wei)=*(p+tou);

  164. }
  165. *(p+tou)=data;
  166. return tou;
  167. }

  168. void paixu_maopao(int* p,int leng)
  169. {
  170. int data;
  171. for(int i=0;i<leng-1;i++)
  172. {
  173. for(int j=leng-1;j>i;j--)
  174. {
  175. if(*(p+j)<*(p+j-1))
  176. {
  177. data=*(p+j);
  178. *(p+j)=*(p+j-1);
  179. *(p+j-1)=data;
  180. }
  181. }
  182. }
  183. return;
  184. }

  185. void paixu_xuanze(int* p,int leng)
  186. {
  187. int data;
  188. for(int i=0;i<leng-1;i++)
  189. {
  190. for(int j=i;j<leng;j++)
  191. {
  192. if(*(p+i)>*(p+j))
  193. {
  194. data=*(p+i);
  195. *(p+i)=*(p+j);
  196. *(p+j)=data;
  197. }
  198. }
  199. }
  200. return;
  201. }

  202. void paixu_charu(int *p,int leng)
  203. {
  204. int data;
  205. int index;
  206. for(int i=1;i<leng;i++)
  207. {
  208. data=*(p+i);
  209. index=i;
  210. while(index>0&&*(p+index-1)>data)
  211. {
  212. *(p+index)=*(p+index-1);
  213. index--;
  214. }
  215. *(p+index)=data;
  216. }

  217. return;
  218. }
复制代码



下面是更新版~~~~~

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <string.h>
  5. #include <Windows.h>
  6. #include <time.h>

  7. #define MAX 123456
  8. #define PAIXU_CHARU 0
  9. #define PAIXU_KUAISU 1
  10. #define PAIXU_GUIBING 2
  11. #define PAIXU_MAOPAO 3
  12. #define PAIXU_XUANZE 4
  13. #define PAIXU_XIER 5
  14. #define PAIXU_YIERSAN 6
  15. #define PAIXU_GESHIBAI 7
  16. #define PAIXU_DUI 8
  17. #define PAIXU_QSORT 9

  18. #define FANGFASHU 10


  19. void data_shuchu(int* p,int leng);
  20. void data_fuzhi(int* p,int* data,int leng);
  21. void paixu_maopao(int* p,int leng,int (* cmp)(const void* a,const void* b));
  22. void paixu_xuanze(int* p,int leng,int (* cmp)(const void* a,const void* b));
  23. void paixu_charu(int* p,int leng,int (* cmp)(const void* a,const void* b));
  24. void paixu_kuaisu(int* p,int leng,int (* cmp)(const void* a,const void* b));
  25. void paixu_xier(int* p,int leng,int (* cmp)(const void* a,const void* b));
  26. void paixu_geshibai(int* p,int leng,int (* cmp)(const void* a,const void* b));
  27. void paixu_dui(int* p,int leng,int (* cmp)(const void* a,const void* b));
  28. int paixu_fangfa(const void* a,const void* b);
  29. int* paixu_guibing(int* p,int leng,int (* cmp)(const void* a,const void* b));
  30. int* paixu_yiersan(int* p,int leng,int (* cmp)(const void* a,const void* b));
  31. int* guibing_hebing(int* zuo_data,int zuo_leng,int* you_data,int you_leng,int (* cmp)(const void* a,const void* b));
  32. int kuaisu_dingwei(int* p,int tou,int wei,int (* cmp)(const void* a,const void* b));
  33. void dui_jian(int* p,int s,int leng,int (* cmp)(const void* a,const void* b));
  34. double pk_paixu(int* p,int leng,int style,int (* cmp)(const void* a,const void* b));


  35. void main()
  36. {

  37. int* data=new int[MAX];
  38. int* p=new int[MAX];
  39. int i;
  40. double yongshi;
  41. double paixu_time[FANGFASHU]={0};
  42. char* paixu_str[FANGFASHU]={"插入排序","快速排序","归并排序","冒泡排序","选择排序","希尔排序","计数排序","基数排序","堆排序 ","QSORT "};

  43. srand(time(0));
  44. for(i=0;i<MAX;i++)
  45. data[i]=rand();

  46. for(i=0;i<3*FANGFASHU;i++)
  47. {
  48. if(0==i%FANGFASHU)
  49. printf("第%d轮:\n",i/FANGFASHU+1);

  50. data_fuzhi(p,data,MAX);
  51. //data_shuchu(p,MAX);
  52. yongshi=pk_paixu(p,MAX,i%FANGFASHU,paixu_fangfa);
  53. //data_shuchu(p,MAX);
  54. paixu_time[i%FANGFASHU]+=yongshi;

  55. printf("%s排序用时: %lf\n",paixu_str[i%FANGFASHU],yongshi);

  56. if(FANGFASHU-1==i%FANGFASHU)
  57. printf("\n");
  58. }

  59. for(int j=0;j<FANGFASHU;j++)
  60. printf("%s平均用时: %lf\n",paixu_str[j],paixu_time[j]/(i/FANGFASHU));

  61. getch();
  62. return;
  63. }


  64. double pk_paixu(int* p,int leng,int style,int (* cmp)(const void* a,const void* b))
  65. {
  66. int* data;
  67. double t_avg;
  68. LONGLONG t1_long;
  69. LONGLONG t2_long;
  70. LARGE_INTEGER litmp;

  71. QueryPerformanceFrequency(&litmp);
  72. t_avg=litmp.QuadPart;

  73. QueryPerformanceCounter(&litmp);
  74. t1_long=litmp.QuadPart;

  75. switch(style)
  76. {
  77. case PAIXU_CHARU:
  78. //paixu_charu(p,leng,cmp);
  79. break;

  80. case PAIXU_KUAISU:
  81. paixu_kuaisu(p,leng,cmp);
  82. break;

  83. case PAIXU_GUIBING:
  84. data=paixu_guibing(p,leng,cmp);
  85. break;

  86. case PAIXU_MAOPAO:
  87. //paixu_maopao(p,leng,cmp);
  88. break;

  89. case PAIXU_XUANZE:
  90. //paixu_xuanze(p,leng,cmp);
  91. break;

  92. case PAIXU_XIER:
  93. paixu_xier(p,leng,cmp);

  94. case PAIXU_YIERSAN:
  95. data=paixu_yiersan(p,leng,cmp);
  96. break;

  97. case PAIXU_GESHIBAI:
  98. paixu_geshibai(p,leng,cmp);
  99. break;

  100. case PAIXU_DUI:
  101. paixu_dui(p,leng,cmp);
  102. break;

  103. case PAIXU_QSORT:
  104. qsort(p,leng,sizeof(int),cmp);
  105. break;

  106. default:break;
  107. }

  108. QueryPerformanceCounter(&litmp);
  109. t2_long=litmp.QuadPart;


  110. if(PAIXU_GUIBING==style||PAIXU_YIERSAN==style)
  111. data_fuzhi(p,data,leng);

  112. return (t2_long-t1_long)/t_avg;
  113. }

  114. void data_shuchu(int* p,int leng)
  115. {
  116. for(int i=0;i<leng;i++)
  117. {
  118. if(i%10==0)
  119. printf("\n");
  120. printf("%d ",p[i]);
  121. }
  122. printf("\n");
  123. return;
  124. }

  125. void data_fuzhi(int*p,int* data,int leng)
  126. {
  127. for(int i=0;i<leng;i++)
  128. *(p+i)=*(data+i);
  129. return;
  130. }

  131. int* paixu_guibing(int* p,int leng,int (* cmp)(const void* a,const void* b))
  132. {
  133. if(leng<=1)
  134. return p;

  135. int zuo_leng=leng/2;
  136. int you_leng=leng-zuo_leng;
  137. int* zuo_data=new int[zuo_leng];
  138. int* you_data=new int[you_leng];

  139. for(int i=0;i<zuo_leng;i++)
  140. {
  141. *(zuo_data+i)=*(p+i);
  142. *(you_data+i)=*(p+i+zuo_leng);
  143. }
  144. if(0!=leng/2)
  145. *(you_data+you_leng-1)=*(p+leng-1);

  146. zuo_data=paixu_guibing(zuo_data,zuo_leng,cmp);
  147. you_data=paixu_guibing(you_data,you_leng,cmp);
  148. return guibing_hebing(zuo_data,zuo_leng,you_data,you_leng,cmp);
  149. }

  150. int* guibing_hebing(int* zuo_data,int zuo_leng,int* you_data,int you_leng,int (* cmp)(const void* a,const void* b))
  151. {
  152. int* data=new int[zuo_leng+you_leng];

  153. int zuo=0;
  154. int you=0;

  155. while(zuo<zuo_leng&&you<you_leng)
  156. {
  157. if(0>=cmp((zuo_data+zuo),(you_data+you)))
  158. {
  159. *(data+zuo+you)=*(zuo_data+zuo);
  160. zuo++;
  161. }
  162. else
  163. {
  164. *(data+zuo+you)=*(you_data+you);
  165. you++;
  166. }
  167. }
  168. while(zuo<zuo_leng)
  169. data[zuo+you]=zuo_data[zuo++];
  170. while(you<you_leng)
  171. data[zuo+you]=you_data[you++];

  172. return data;
  173. }

  174. void paixu_kuaisu(int* p,int leng,int (* cmp)(const void* a,const void* b))
  175. {
  176. int* stack=new int[leng*2];
  177. int top=0;
  178. int tou=0;
  179. int wei=leng-1;
  180. int index;

  181. while(tou<wei)
  182. {
  183. index=kuaisu_dingwei(p,tou,wei,cmp);

  184. stack[top++]=index+1;
  185. stack[top++]=wei;
  186. wei=index-1;
  187. while(tou>=wei&&top)
  188. {
  189. wei=stack[--top];
  190. tou=stack[--top];
  191. }
  192. }

  193. return;
  194. }

  195. int kuaisu_dingwei(int *p,int tou,int wei,int (* cmp)(const void* a,const void* b))
  196. {
  197. int data=p[tou+(wei-tou)/2];
  198. p[tou+(wei-tou)/2]=p[tou];

  199. while(tou<wei)
  200. {
  201. while(tou<wei&&0<=cmp((p+wei),&data))
  202. wei--;
  203. *(p+tou)=*(p+wei);

  204. while(tou<wei&&0>=cmp((p+tou),&data))
  205. tou++;
  206. *(p+wei)=*(p+tou);

  207. }
  208. *(p+tou)=data;
  209. return tou;
  210. }

  211. void paixu_maopao(int* p,int leng,int (* cmp)(const void* a,const void* b))
  212. {
  213. int data;

  214. for(int i=0;i<leng-1;i++)
  215. {
  216. for(int j=leng-1;j>i;j--)
  217. {
  218. if(0>cmp((p+j),(p+j-1)))
  219. {
  220. data=*(p+j);
  221. *(p+j)=*(p+j-1);
  222. *(p+j-1)=data;
  223. }
  224. }
  225. }
  226. return;
  227. }

  228. void paixu_xuanze(int* p,int leng,int (* cmp)(const void* a,const void* b))
  229. {
  230. int data;

  231. for(int i=0;i<leng-1;i++)
  232. {
  233. for(int j=i;j<leng;j++)
  234. {
  235. if(0>cmp((p+j),(p+i)))
  236. {
  237. data=*(p+i);
  238. *(p+i)=*(p+j);
  239. *(p+j)=data;
  240. }
  241. }
  242. }
  243. return;
  244. }

  245. void paixu_charu(int *p,int leng,int (* cmp)(const void* a,const void* b))
  246. {
  247. int data;
  248. int index;

  249. for(int i=1;i<leng;i++)
  250. {
  251. data=*(p+i);
  252. index=i;
  253. while(index>0&&0>cmp(&data,(p+index-1)))
  254. {
  255. *(p+index)=*(p+index-1);
  256. index--;
  257. }
  258. *(p+index)=data;
  259. }

  260. return;
  261. }

  262. void paixu_xier(int* p,int leng,int (* cmp)(const void* a,const void* b))
  263. {
  264. int index;
  265. int data;
  266. int n;

  267. for(n=leng/2;n>0;n/=2)
  268. {
  269. for(int i=n;i<leng;i++)
  270. {
  271. data=p[i];
  272. index=i-n;
  273. while(index>=0&&0>cmp(&data,(p+index)))
  274. {
  275. p[index+n]=p[index];
  276. index-=n;
  277. }
  278. p[index+n]=data;
  279. }
  280. }
  281. return;
  282. }

  283. int* paixu_yiersan(int* p,int leng,int (* cmp)(const void* a,const void* b))
  284. {
  285. int max=0;
  286. for(int i=0;i<leng;i++)
  287. if(max<p[i])
  288. max=p[i];

  289. int* index=new int[max+1];
  290. int* data=new int[leng];
  291. bool shunxu=true;
  292. int a=1;
  293. int b=2;
  294. if(0<cmp(&a,&b))
  295. shunxu=false;

  296. memset(index,0,(max+1)*sizeof(int));

  297. for(int i=0;i<leng;i++)
  298. index[p[i]]++;

  299. for(int i=1;i<=max;i++)
  300. index[i]+=index[i-1];

  301. for(int i=leng-1;i>=0;i--)
  302. {
  303. if(shunxu)
  304. data[index[p[i]]-1]=p[i];
  305. else
  306. data[leng-index[p[i]]]=p[i];
  307. index[p[i]]--;
  308. }

  309. return data;
  310. }

  311. void paixu_dui(int* p,int leng,int (* cmp)(const void* a,const void* b))
  312. {
  313. int data;
  314. for(int i=leng/2;i>=0;i--)
  315. dui_jian(p,i,leng,cmp);

  316. for(int i=leng-1;i>0;i--)
  317. {
  318. data=p[0];
  319. p[0]=p[i];
  320. p[i]=data;
  321. dui_jian(p,0,i-1,cmp);
  322. }

  323. return;
  324. }

  325. void dui_jian(int* p,int s,int leng,int (* cmp)(const void* a,const void* b))
  326. {
  327. int data=p[s];

  328. for(int i=2*s;i<leng;i*=2)
  329. {
  330. if(i<leng&&0>cmp((p+i),(p+i+1)))
  331. i++;
  332. if(0<=cmp(&data,(p+i)))
  333. break;
  334. p[s]=p[i];
  335. s=i;
  336. }
  337. p[s]=data;
  338. return;
  339. }

  340. void paixu_geshibai(int* p,int leng,int (* cmp)(const void* a,const void* b))
  341. {
  342. int max=1;
  343. int x=1;
  344. int n=0;
  345. int p_index=0;
  346. int* p_data[10];
  347. int data_index[10]={0};
  348. bool max_xunzhao=true;

  349. bool shunxu=true;
  350. int a=1;
  351. int b=2;
  352. if(0<cmp(&a,&b))
  353. shunxu=false;

  354. for(int i=0;i<10;i++)
  355. p_data[i]=new int[leng];

  356. while(x<=max)
  357. {
  358. for(int i=0;i<leng;i++)
  359. {
  360. if(max_xunzhao)
  361. if(max<p[i])
  362. max=p[i];
  363. if(x>p[i])
  364. p_data[0][data_index[0]++]=p[i];
  365. else
  366. {
  367. n=(p[i]/x)%10;
  368. p_data[n][data_index[n]++]=p[i];
  369. }
  370. }
  371. if(shunxu)
  372. for(int i=0;i<10;i++)
  373. {
  374. for(int j=0;j<data_index[i];j++)
  375. p[p_index++]=p_data[i][j];
  376. data_index[i]=0;
  377. }
  378. else
  379. for(int i=9;i>=0;i--)
  380. {
  381. for(int j=0;j<data_index[i];j++)
  382. p[p_index++]=p_data[i][j];
  383. data_index[i]=0;
  384. }
  385. x*=10;
  386. p_index=0;
  387. max_xunzhao=false;
  388. }
  389. return;
  390. }

  391. int paixu_fangfa(const void* a,const void* b)
  392. {
  393. return *(int*)a-*(int*)b;
  394. }
复制代码




备注版~~~

排序_PK.rar (4.12 KB, 下载次数: 17, 售价: 3 鱼币)

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-7-6 14:39:41 | 显示全部楼层
沙发自己做~~~
没注释是偶的一贯作风~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-6 14:46:50 | 显示全部楼层
(1)这些排序方法不实用,建议参考qsort函数,实现一个增强版本的qsort函数,可以指定排序算法。
(2)这些都是基于比较的排序,速度太慢,还可以加上 计数排序,基数排序  这些非基于比较的速度更快的排序法。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-6 18:58:52 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-6 22:48:08 | 显示全部楼层
额 楼主写代码时加上注释好不?  我看着头晕哈
不过效率都不高 还是多看看算法吧 我也正在学呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-7-10 22:45:53 | 显示全部楼层
本帖最后由 raotf 于 2011-7-10 22:47 编辑
仰望天上的光 发表于 2011-7-6 14:46
(1)这些排序方法不实用,建议参考qsort函数,实现一个增强版本的qsort函数,可以指定排序算法。
(2)这 ...


我擦~~~~
指定排序方法!!!!!!!!!
快排竟然需要多用近5倍时间~~~~
本来只需qsort的1/3左右,加后就比qsort慢多了~~~~

然后问下想把比较类型int*改为void*
就是不知道怎么索引和交换数据
比如说
我想把p [ i ] 和p[i+1]的数据交换
但不知道p是结构体还是整型该怎么弄......
先谢了

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-7-10 22:51:46 | 显示全部楼层
服气 发表于 2011-7-6 22:48
额 楼主写代码时加上注释好不?  我看着头晕哈
不过效率都不高 还是多看看算法吧 我也正在学呢

效率都不高????
那排序什么高啊~~~
最常用的应该是快排把
非比较的排序好像都有局限性啊!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-11 17:22:20 | 显示全部楼层
楼主 有点折腾人啊 下次 直接发二进制码 比较好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-7-11 23:06:20 From FishC Mobile | 显示全部楼层
Be_envious 发表于 2011-7-11 17:22  楼主 有点折腾人啊 下次 直接发二进制码 比较好

好吧-_-
有时间我就把备注加上
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-5-17 13:43:25 | 显示全部楼层
无回帖,不论坛,这才是人道。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-7-2 21:31:56 | 显示全部楼层
看帖,回复支持下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-7-2 23:43:59 | 显示全部楼层
看看老帖,支持下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-7-3 16:20:36 | 显示全部楼层
万恶的回复啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-7-3 16:50:02 | 显示全部楼层
强烈支持!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-7-3 16:56:48 From FishC Mobile | 显示全部楼层
谢谢分享!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-24 06:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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