Chinaunix首页 | 论坛 | 博客
  • 博客访问: 485974
  • 博文数量: 80
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1916
  • 用 户 组: 普通用户
  • 注册时间: 2013-07-11 22:01
个人简介

从事实时计算多年,熟悉jstorm/spark/flink/kafka/rocketMq, 热衷于开源,希望在这里和前辈们一起学习与分享,得到长足的进步!邮箱:hustfxj@gmail.com 我的githup地址是:https://github.com/hustfxj。欢迎和大家一起交流探讨问题。

文章分类

全部博文(80)

文章存档

2017年(11)

2015年(3)

2014年(33)

2013年(33)

分类: C/C++

2014-03-06 00:28:42

直接贴代码

点击(此处)折叠或打开

  1. // test1.cpp : Defines the entry point for the console application.
  2. //

  3. #include "stdafx.h"
  4. #include"list"
  5. #include"time.h"
  6. #include"windows.h"
  7. #include"iostream"
  8. using namespace std;

  9. static void swap(list<int>::iterator a, list<int>::iterator b)

  10. {
  11.     if(*a==*b)
  12.         return;
  13.     int temp = *a;

  14.     *a=*b;

  15.     *b=temp;

  16. }

  17.  static list<int>::iterator partion(list<int>& _ilist,list<int>::iterator start,list<int>::iterator end)
  18.  {
  19.      int compare_value=*end;
  20.      list<int>::iterator i=start;
  21.      list<int>::iterator j=start;
  22.      for(;j!=end;j++)
  23.      {
  24.          if((*j)<=compare_value)
  25.          {
  26.              //转换i---j//
  27.             // i++;
  28.              swap(i,j);
  29.              i++;
  30.             
  31.          }
  32.      }

  33.      // i++;
  34.      swap(i,end);
  35.      return i;
  36.  }


  37. static void qurtsort(list<int>& _ilist,list<int>::iterator start,list<int>::iterator end)
  38. {
  39.     if(start==end)
  40.         return;
  41.     list<int>::iterator mid1=partion(_ilist,start,end);
  42.     list<int>::iterator mid2=mid1;
  43.     if(!(mid1==start))    
  44.      qurtsort(_ilist,start,--mid1);
  45.     if(!(mid2==end))
  46.         if(!(mid2==start))
  47.         qurtsort(_ilist,mid2,end);

  48. }




  49. int main(int argc, char* argv[])
  50. {
  51.     list<int> _ilist;
  52.     list<int> _ilist1;
  53.     for(int k=0;k<1000;k++)
  54.     {
  55.         int jj=rand();
  56.         _ilist.push_back(jj);
  57.         _ilist1.push_back(jj);

  58.     }

  59. //    _ilist.push_back(1);
  60. //    _ilist.push_back(2);
  61. //    _ilist.push_back(1);
  62.     list<int>::iterator _iter;
  63. //    for(_iter=_ilist.begin();_iter!=_ilist.end();_iter++)
  64. //        printf("%d\t",*_iter);
  65.     int betime=GetTickCount();
  66.     qurtsort(_ilist,_ilist.begin(),--(_ilist.end()));
  67.     int eetime=GetTickCount();
  68. //    for(_iter=_ilist.begin();_iter!=_ilist.end();_iter++)
  69. //        printf("%d\t",*_iter);
  70.      printf("\n");
  71.     cout<<eetime-betime;


  72.     int betime1=GetTickCount();
  73.     _ilist1.sort();
  74.     int eetime1=GetTickCount();
  75.          printf("\n");
  76.     cout<<eetime1-betime1;

  77.     return 0;
  78. }

另外:还可以参考
阅读(1161) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~