借口太多

这段时间借口太多了,说要搞这个,搞那个。最后什么都没搞出来,帮人家搞了很多东西。自己的东西都不知道在哪里,准备好写点东西,网上东走西看,一点东西都没搞出来。周末的时间基本被人家定了,上课,帮人家买电脑,帮人家搞程序。哇,写作业的时候才发现,好久没看学校发的书了。小边说要出来,昨晚没怎么睡,心情一直很乱,不知道想什么子东西。大学学的太多,应用的很少,业余学的用处不少。因为学的太杂,质量不高。所以我在我们学校是个伪人才,不怕自己打击自己,因为是事实吧。这两周要努力去写完那点东西,还要跟华七七搞英文站,都不知道怎么去搞,英文太差,所以一直在学。小边的事也许我是自己烦自己吧。把小边实验室要求要写的C++几种排序的代码放出来看吧。小边没叫我帮忙,因为我不会。这个也不是我写的,是一高手帮别人写的,然后人家拿来请教我。我讲解了一会,之后那人就不见了。

// MySort.h: interface for the CMySort class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_MYSORT_H__A85E5CA1_77B0_4144_B5BF_2997EADB4B16__INCLUDED_)
#define AFX_MYSORT_H__A85E5CA1_77B0_4144_B5BF_2997EADB4B16__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <windows.h>
#include <stdlib.h>
#include <time.h>

#define _AUTOTEST_OPEN  // 自测试开关 注释掉这个就关闭自测试

template <class T, int nLen>
class CMySort
{
public:
 CMySort();
 virtual ~CMySort();
 void dce();
protected:
 T* m_data;
 int m_nLen;
protected:
 //输出函数
 void Output(int n);
 void mergesort();
 //两路合并排序
 void Merge(int i1,int j1,int i2,int j2);
 void Quicksort();
 //快速排序
 void Quick(int s,int t);
 void SWAP(T &a,T &b);
 //插入排序
 void InsertSort();
 //选择排序
 void SelectSort();
 // 冒泡排序
 void Popsort();
};

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

template<class T, int nLen>
CMySort<T, nLen>::CMySort()
{
 m_data=new T[nLen];
 m_nLen = nLen;
}

template <class T, int nLen>
CMySort<T, nLen>::~CMySort()
{
 delete[] m_data;
 m_data = NULL;
}

// 冒泡排序
template <class T, int nLen>
void CMySort<T, nLen>::Popsort()
{
    T temp;
 int i,j;
 for(i=0;i<nLen;i++)
  for(j=i+1;j<nLen;j++)
  {
   if(m_data[i]>m_data[j])
   {
    temp=m_data[i];
    m_data[i]=m_data[j];
    m_data[j]=temp;
   }
  }  
}

//选择排序
template <class T, int nLen>
void CMySort<T, nLen>::SelectSort()
{
    T temp;
    int inLen;
    for(int i=0;i<nLen-1;i++)
    {
        temp = m_data[i];
        inLen = i;
        for(int j=i+1;j<nLen;j++)
        {
            if(m_data[j]<temp)
            {
                temp = m_data[j];
                inLen = j;
            }
        }
        m_data[inLen]=m_data[i];
        m_data[i]=temp;
    }
}
//插入排序
template <class T, int nLen>
void CMySort<T, nLen>::InsertSort()
{
    T temp;
    int i,i_flag;
    for(i=1;i<nLen;i++)
    {
        temp = m_data[i];
        i_flag = i;
        while((i_flag>0)&&(temp<m_data[i_flag-1]))
        {
            m_data[i_flag]=m_data[i_flag-1];
            i_flag--;
        }
        m_data[i_flag]=temp;
    }
}
template <class T, int nLen>
void CMySort<T, nLen>::SWAP(T &a,T &b)
{
    T temp;
 temp=a;
 a=b;
 b=temp; 
}
//快速排序
template <class T, int nLen>
void CMySort<T, nLen>::Quick(int s,int t)
{
    int i,j;
 if(s<t)
 {
  i=s;
  j=t+1;
  while(1)
  {
   do i++;
   while(!(m_data[s]<=m_data[i]||i==t));
   do j--;
   while(!(m_data[s]>=m_data[j]||j==s));
   if(i<j)
    SWAP(m_data[i],m_data[j]);
   else
    break;
  }
  SWAP(m_data[s],m_data[j]);
  Quick(s,j-1);
  Quick(j+1,t);
 }
}
template <class T, int nLen>
void CMySort<T, nLen>::Quicksort()
{
    Quick(0,nLen-1);
}
//两路合并排序
template <class T, int nLen>
void CMySort<T, nLen>::Merge(int i1,int j1,int i2,int j2)
{
    T *temp=new T[j2-i1+1];
 int i=i1,j=i2,k=0;
 while(i<=j1&&j<=j2)
  if(m_data[i]<m_data[j])
   temp[k++]=m_data[i++];
  else
   temp[k++]=m_data[j++];
 while(i<=j1)
  temp[k++]=m_data[i++];
 while(j<=j2)
  temp[k++]=m_data[j++];
 for(i=0;i<k;i++)
  m_data[i1++]=temp[i];
 delete[] temp;
}
template <class T, int nLen>
void CMySort<T, nLen>::mergesort()
{
    int i1,j1,i2,j2;
 int size=1;
 while(size<nLen)
 {
  i1=0;
  while(i1+size<nLen)
  {
   i2=i1+size;
   j1=i2-1;
   if(i2+size-1>nLen-1)
    j2=nLen-1;
   else
    j2=i2+size-1;
   Merge(i1,j1,i2,j2);
   i1=j2+1;
  }
  size*=2;
 } 
}
//输出函数
template <class T, int nLen>
void CMySort<T, nLen>::Output(int n)
{
    int i;
 switch(n)
 {
 case 1:    Popsort();   break;
 case 2
:    SelectSort();   break;
    case 3:    InsertSort();    break;
 case 4:    Quicksort();    break;
    case 5:    mergesort();    break;
 }
 for(i=0;i<nLen;i++)
  cout<<m_data[i]<<" ";
 cout<<endl;
}
template<class T, int nLen>
void CMySort<T, nLen>::dce()
{
#ifdef _AUTOTEST_OPEN
 srand((unsigned int)time(NULL));
 int i;
 int j;

 if (typeid(double*) == typeid(m_data))
 { 
  for (i=0; i<nLen; i++)
  {
   m_data[i] = ((double)(rand()%1000+1))/10.0;
   cout<<m_data[i]<<" ";
  }  
 }
 else if (typeid(char*) == typeid(m_data))
 { 
  for (i=0; i<nLen; i++)
  {
   m_data[i] = rand()%26+'A';
   cout<<m_data[i]<<" ";
  }  
 }
 else if (typeid(string*) == typeid(m_data))
 { 
  for (i=0; i<nLen; i++)
  {
   int nRandLen = rand()%6+3;
   for (j=0; j<nRandLen; j++)
   {
    m_data[i] += rand()%26+'A';
   }   
   cout<<m_data[i]<<" ";
  } 
 }
 else
 {
  return;
 }
 cout<<endl;

 cout<<"1:冒泡排序"<<endl;
 Output(1);
 cout<<"2:选择排序"<<endl;
 Output(2);
 cout<<"3:插入排序"<<endl;
 Output(3);
 cout<<"4:快速排序"<<endl;
 Output(4);
 cout<<"5:两路合并排序"<<endl;  
 Output(5);
#else
 cout<<"输入"<<nLen<<"个:";
 for(int r=0;r<nLen;r++)
  cin>>m_data[r];
 int n;
 cout<<"1:冒泡排序"<<endl;
 cout<<"2:选择排序"<<endl;
    cout<<"3:插入排序"<<endl;
 cout<<"4:快速排序"<<endl;
 cout<<"5:两路合并排序"<<endl;
    cin>>n;
 Output(n);
#endif     
}

#endif // !defined(AFX_MYSORT_H__A85E5CA1_77B0_4144_B5BF_2997EADB4B16__INCLUDED_)
 

太长了就不贴出来了,看了主要的代码,需要的应该可以写出其它的部分。

打包一下,自己下吧:201003212158347867.rar

评论 (10)
  1. avatar
    沙发
    混生 2010-03-21 16:24

    借口有时候可以适当缓解自己的压力。时间有时候多留给自己一些

    浩忍 于 2010-3-22 10:03:41 回复

    也许应该好好去外面玩几天回来

  2. avatar
    板凳
    panny 2010-03-22 01:38

    C++ 已经好多年没碰了。
    我是越来越堕落了

    浩忍 于 2010-3-22 10:04:58 回复

    我也没搞,只是有同学叫我帮忙,我看才了一会

  3. avatar
    地板
    先看看 2010-03-22 06:02

    多做实事,少找借口

    浩忍 于 2010-3-22 17:33:21 回复

    事做了很多,却没动力了!

  4. avatar
    4 楼
    疾风 2010-03-22 17:22

    看不懂代码~

    浩忍 于 2010-3-23 10:54:16 回复

    各有所长

  5. avatar
    5 楼
    panny 2010-03-23 00:53

    看来我来得还挺勤快的嘛...
    博主还没更新,来催了

    浩忍 于 2010-3-23 10:50:57 回复

    哈哈,已经写了好多
    没发出来嘛

  6. avatar
    6 楼
    5D开心博客 2010-03-23 05:55

    这些排序算法都很经典啊

    浩忍 于 2010-3-23 14:01:48 回复

    恩,都是比较经典的

  7. avatar
    7 楼
    老七 2010-03-24 04:54

    无视代码。。。

    浩忍 于 2010-3-27 12:43:39 回复

    你是一个杯具

  8. avatar
    8 楼
    刘学政博客 2010-03-27 03:29

    感谢分享,不过我不会技术

    浩忍 于 2010-3-27 12:43:57 回复

    哈哈,分享

  9. avatar
    9 楼
    怡红公子 2010-04-07 12:17

    说道帮忙……让我想到了某个WAP半成品……==……咱不急就是……

  10. avatar
    10 楼
    15026749299 2010-09-05 21:49

    853