当前位置: 首页 > news >正文

网站开发可演示的版本用树莓派做网站服务器好吗

网站开发可演示的版本,用树莓派做网站服务器好吗,邯郸市城乡住房建设局网站,网站建好了 怎么建后台一#xff0c;选择排序 选择排序算是简单排序中的渣渣#xff0c;这种算法基本上是没有什么用处的。但是作为一个初学者#xff0c;我又必须要会写这种算法。这种算法的实现实现思想和它的名字一样#xff0c;就是在一个范围内选择最大或者最小的数据然后再交换数据实现排序… 一选择排序 选择排序算是简单排序中的渣渣这种算法基本上是没有什么用处的。但是作为一个初学者我又必须要会写这种算法。这种算法的实现实现思想和它的名字一样就是在一个范围内选择最大或者最小的数据然后再交换数据实现排序。比如我有如下数据需要排序 将数据具象化以后变成这样  现在我们可以选择的范围是哪些呢 范围  begin:0                    end:n-1。    然后我们要在这个范围内选择最大的数据或者最小的数据与尾/首的数据进行交换再将选择范围缩小 先设置begin的后一个为最小值end的前一个为最大值然后遍历调整得到真的最大和最小值的下标。然后将最小值和begin指向的位置交换最大值和end指向的下标的值交换。用这个逻辑不断地走不断地缩小查找范围当查找范围没了即endbegin不再成立以后排序就完成了。 代码 void swap(int* p1, int* p2) {int tmp *p1;*p1 *p2;*p2 tmp; } void selectSort(int* a, int n) { //初始的查找范围int end n - 1;int begin 0;//while循环判断查找空间是否还有while (begin end){ //实现交换逻辑int maxi end-1;int mini begin1;for (int i begin;i end;i){if (a[i] a[maxi]){maxi i;}if (a[i] a[mini]){mini i;}}swap(a[maxi], a[end]);//处理特殊情况当mini与end指向同一数据时需要处理一下if (mini end){mini maxi;}swap(a[mini], a[begin]);//缩小查找范围end--;begin;}} 二堆排序 堆排序也是选择排序的一种。但是堆排序的速度比原始的选择排序快多了。 比如下面的数据 如果使用堆排序的话就要先将这些数据看成满二叉树的结构 然后就要建堆了 建堆原则排升序建大堆排降序建小堆。 建堆排升序变成这样  建堆完成以后便要执行下面的操作 1.交换首尾数据。 2.缩小范围。 3.向下调整。 经过这几步以后堆排序就写好了。 堆排序代码 void AdjustDown(int* a, int n,int parent) {int child 2 * parent 1;while (child n){if (child 1 n a[child 1] a[child]){child;}if (a[child] a[parent]){swap(a[parent], a[child]);}parent child;child parent * 2 1;}} void heapSort(int* a, int n) {//向下调整建堆for (int i (n - 1 - 1) / 2;i 0;i--){AdjustDown(a, n,i);}int end n - 1;for (int i end; i 0;i--){ //交换首尾数据swap(a[end], a[0]);//向下调整AdjustDown(a, end, 0);//缩小调整范围end--;} }三性能比较 堆排序是一个很好的算法选择排序是一个很慢的算法。但是口说无凭现在就写一段代码来验证这个事实。 代码 void test() { //创建两个数组并将两个数组内的数据搞成随机值srand(time(0));int n 100000;int* a1 (int*)malloc(sizeof(int) * n);int* a2 (int*)malloc(sizeof(int) * n);int i 0;for ( i 0;i n;i){int j rand();a1[i] j;a2[i] a1[i];}//记录选择排序的时间int begin1 clock();selectSort(a1, n);int end1 clock();//记录堆排序的时间int begin2 clock();heapSort(a2, n);int end2 clock();//打印两个排序的时间printf(selectSort:%d\n, end1 - begin1);printf(heapSort:%d\n, end2 - begin2);//释放内存free(a1);free(a2); } 排十万个数据的时间单位ms) selectSort:5051 heapSort:30 从结果可以看到堆排序的效率暴打选择排序。
http://www.sadfv.cn/news/220284/

相关文章:

  • 网站建设 北京餐饮品牌策划
  • 备案名称和网站logo不一致商业网站设计
  • 网站开发设置用户企业网络营销推广方案策划范文
  • 如何查看网站的服务器位置达建网站
  • 企业做网站的泉州模板做网站
  • 网站开发系统的可行性研究报告4399全部网页游戏大全
  • 手机设计房子的软件天津网站建设优化企业
  • 网站首页是动态的视频怎么做二手交易网站开发系统
  • 网站宣传的传统方式有哪些网站开发项目报告
  • 建设银行造价咨询中心网站创建一个网站的创业计划书
  • 自己电脑做网站主机网站制作文章标签
  • 怎么查网站的关键词排名熊掌号网站怎么做
  • 电子商务网站建设中应注意哪些问题做哪类视频网站需要视频牌照
  • 公司建设网站的费用吗网站建设书案例
  • 更适合企业网站建设的cms系统网站建设的完整流程图
  • 网站开发与应用课程讨论qq互联网站备案号
  • 西安网站优化维护摄影师网站
  • 专业建设金融行业网站的公司网站建设的实验原理
  • 做外贸网站企业怎样做网站seo
  • wordpress企业网站模板建网站的公司不肯签合同
  • 武昌便宜做网站兼职网站建设推广人才
  • 药品网站订单源码北京建设网站活动图片
  • 上海建设银行网站查询余额如何查看一个网站用什么程序做的
  • 个人网页上传网站怎么做招标网站有哪些
  • html手机网站开发定制物品的app有哪些
  • 宜城网站开发怎么做网站网站
  • 做图书馆网站湖南seo优化排名
  • 做网站地图网络规划
  • 毕业设计网站可以做什么网站不备案打不开
  • iis7搭建网站织梦培训班有哪些