第2次实验——算法基本功 与 综合思考

  1. #include <iostream>  
  2. #include <fstream>  
  3. #include <time.h>  
  4. using namespace std;  
  5.   
  6. #define TXT_NUM_COUNT 1000001  
  7.   
  8. int ImportToArray(const char *filename,int *array)  //将filename内的纯数字文本导入数组array;  
  9. {  
  10.     int count=0;  
  11.     ifstream fin;  
  12.     fin.open(filename);  
  13.     if( fin.fail() )  
  14.     {  
  15.         cout<<"file read fail!"<<endl;  
  16.         return -1;  
  17.     }  
  18.     while( fin.eof() ==false )  
  19.         fin>>array[count++];  
  20.     fin.close();  
  21.     return count;  
  22. }  
  23.   
  24. int ExportWithArray(const char *filename,int *array,int count)  
  25. {  
  26.     ofstream fout;  
  27.     fout.open(filename);  
  28.     if(fout.fail())  
  29.     {  
  30.         cout<<"file wirte fail"<<endl;  
  31.         return -1;  
  32.     }  
  33.     for(int i=0;i<count;i++)  
  34.         fout<<array[i]<<endl;  
  35.     fout.close();  
  36. }  
  37.   
  38. void QuickSort(int *array,int size)  
  39. {  
  40.     if(size>1)  
  41.     {  
  42.         int i=0;  
  43.         int j=size;  
  44.         int p=array[i];  
  45.         do  
  46.         {  
  47.             do i++;   
  48.             while(array[i]<p);  
  49.             do j--;  
  50.             while(array[j]>p);  
  51.             if(i<j)  swap(array[i],array[j]);  
  52.         }while(i<j);  
  53.         swap(array[0],array[j]);  
  54.   
  55.         QuickSort(array,j);  
  56.         QuickSort(array+j+1,size-j-1);  
  57.     }  
  58. }  
  59.   
  60. void swap(int &a,int &b)  
  61. {  
  62.     int t=a;  
  63.     a=b;  
  64.     b=t;  
  65. }  
  66.   
  67. void main()  
  68. {  
  69.   
  70.     time_t t_start,t_end;  
  71.     int *array=new int[TXT_NUM_COUNT]; //已经测得有1000001个数据,其中多测一个为空行  
  72.     int count=ImportToArray("largeW.txt",array);  
  73.   
  74.     //printf("%d %d",count,array[count-1]);  
  75.     cout<<count<<" "<<array[count-1]<<endl;  
  76.   
  77.     t_start=time(NULL);  
  78. //  bubbleSort(array,count-1);  
  79. //  mergeSort(array,count-1);  
  80.     QuickSort(array,count-1);  
  81.     t_end=time(NULL);  
  82.       
  83. //  cout<<"冒泡用时(S):"<<difftime(t_end,t_start)<<endl;  
  84.   
  85. //  cout<<"归并用时(S):"<<difftime(t_end,t_start)<<endl;  
  86.   
  87.     cout<<"快速用时(S):"<<difftime(t_end,t_start)<<endl;  
  88.    
  89. //  ExportWithArray("largeW_bubble.txt",array,count-1);  
  90.   
  91. //  ExportWithArray("largeW_merge.txt",array,count-1);  
  92.     ExportWithArray("largeW_quick.txt",array,count-1);  
  93.   
  94.     delete [] array;  
  95.   
  96.     测试用  
  97.     //int a[]={8,2,1,4,6,8,9,0,1,1};  
  98.     bubbleSort(a,10);  
  99.     //QuickSort(a,10);  
  100.     //for(int i=0;i<10;i++)  
  101.     //  cout<<a[i]<<" ";  
  102. }  

(2)经典算法面试题(至少选择其中1道题并作答,有自己的思考与理解)

怎样从顶部开始逐层打印二叉树结点数据?请编程。

答:当做一个图来使用广度优先遍历即可.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值