在linux下用C++编写快速排序(一)

由于之前一直在看html和Qt,把最开始的一些忘记了,为什么选择在linux下用c++写快速排序呢?第一,熟悉一下linux的代码;第二,帮自己温习一下c++程序;第三,写快速排序的话可以将其分成几个文件,然后用mkfile 以及可以用gdb调试,哈哈,想一想各方面也是挺好的。之所以记下来是怕自己以后忘了

好了,最基本的,在文件夹下建立一个文件,名为quicksort ,这个命令当然是用mkdir quicksort,然后进入该文件夹,vi quicksort.h,编写头文件,在编写头文件时一定不能忘了#ifndef哦,因为编写这些是为了巩固自己复习所以我在.h文件里面用了类

 1 #ifndef _QUICK_SORT__
  2 #define _QUICK_SORT_
  3 
  4 #include
  5 
  6 using namespace std; //注意一定要添加哦,因为在c++里有很多库,系统不确定我们要找的在哪个库,所以要添这句
  7 class Quick{
  8      public:
  9          void aquicksort(int a[ ],int right,int left); //定义了一个成员函数
 10 };
 11 
 12 #endif

之后,我们对该函数做定义,嗯,在同一个文件夹里面加一个文件叫做quicsort.cpp文件,里面写快速排序。这里扩展一下快速排序的定义。 引用百度百科基本思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列

  1 #include "quicksort.h"
  2 
  3 void Quick::aquicksort(int a[ ],int left,int right)
  4 {
  5     if(left>=right){
  6 
  7         return ;
  8     }
  9     int first = left;
 10     int last = right;
 11     int key = a[first];
 12      while(first  13      {
 14      while(first=key)
 15           {
 16                last--;
 17           }
 18           a[first] = a[last];
 19           while(first  20           {
 21                first++;
 22           }
 23           a[last] = a[first];
 24      }
 25      a[last] = key;
 26      aquicksort(a,left,last-1);
 27      aquicksort(a,last+1,right);
 28 }
嗯,我们现在写了main函数验证一下就可以了

注意在main里引用类里定义的成员变量要先new一下:

main.cpp的代码入下:  1 #include "quicksort.h"
  2 
  3 
  4 int main()
  5 {
  6      Quick* quicksort = new Quick();
  7      int a[ ]={34,2,5,76,8,7,4,35};
  8      quicksort->aquicksort(a,0,7);
  9      for(int i=0;i<8;i++)
 10      {
 11           cout<  12      }
 13 
 14      return 0;
 15 }

大功告成,回到上级目录,gcc main.cpp quicksort.cpp 生成a.out,然后运行./a.out就可以看到结果了

你可能感兴趣的:(linux,c++)