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

做后台系统的网站网站建设是一个什么的过程

做后台系统的网站,网站建设是一个什么的过程,手机app软件开发价格,苏州网页服务开发与网站建设快速排序: 1.首先找一个基准点(一般选取最左边第一个) 2.先从后往前遍历,找到第一个小于基准值的元素; 3.再从前往后,找到第一个大于基准值的元素; 4.将这两个元素两两交换 5.当i与j相遇时…

快速排序:

1.首先找一个基准点(一般选取最左边第一个)

2.先从后往前遍历,找到第一个小于基准值的元素;

3.再从前往后,找到第一个大于基准值的元素;

4.将这两个元素两两交换

5.当i与j相遇时,说明找到了排序后当前这个基准值的正确位置,将基准点进行归位;

6.开始新的一轮,以上一轮的基准点为中轴,分成左边区域和右边区域,分别选取一个新的基准点对新的基准点进行归位即可。

非递归(利用队列实现)

//进行分区,也就是找到基准点排序后的正确位置
int pation(vector<int>& nums, int left, int right)
{int tmp = nums[left];//先将基准点保存起来//循环结束条件:i和j相遇while (left < right){//从后往前找,找到第一个小于基准点的下标while (left<right && nums[right]>tmp)--right;//将当前这个值赋给左下标的元素if (left < right) nums[left] = nums[right];//从前往后,找到第一个大于基准值的下标while (left < right && nums[left] <= tmp)++left;将当前这个值赋给右下标的元素if (left < right) nums[right] = nums[left];}//此时left和right就是基准值的正确位置//将基准值归位nums[left] = tmp;return left;
}
//非递归
void quickSort(vector<int>& nums, int left, int right)
{queue<int> qu;//通过队列实现非递归,如果用栈就是先放右边的值再放左边的值qu.push(left);qu.push(right);while(!qu.empty()){left = qu.front(); qu.pop();right = qu.front(); qu.pop();//分区int pos = pation(nums, left, right);//对左边序列进行排序if (left < pos - 1){qu.push(left);qu.push(pos - 1);}//对右边序列进行排序if (right > pos + 1){qu.push(pos + 1);qu.push(right);}}
}
int main()
{cout << "请输入数组大小:" << endl;int n;cin >> n;vector<int> nums(n);for (int i = 0; i < n; i++){cin >> nums[i];}quickSort(nums, 0, n - 1);cout << "排序后的数组:" << endl;for (auto& i:nums){cout << i << " ";}cout << endl;return 0;
}

递归:

void dfs(vector<int>& nums, int left, int right)
{//左右边界相遇时,直接return结束if (left >= right) return;int key = nums[left];//保存基准值int i = left, j = right;while (i < j){//从后往前找第一个小于基准值的元素while (nums[j]>=nums[left] &&i<j){j--;}//从前往后找第一个大于基准值的元素while (nums[i] <= nums[left] && i<j){i++;}//左右边界没有相遇,将这两个值两两交换if (i < j){swap(nums[j], nums[i]);}}//此时循环结束,i或j下标就代表基准值的正确下标位置nums[left] = nums[i];nums[i] = key;//递归左边区域dfs(nums, left, i - 1);//递归右边区域dfs(nums, i + 1, right);
}

 注意:

快速排序的时间复杂度通常情况下是O(nlogn)

但在特殊情况下,比如选取的这个基准点刚好是最大值或是最小值时,对n个元素排序,需要遍历n次,此时时间复杂度为O(n*n);

http://www.yayakq.cn/news/835786/

相关文章:

  • 咸阳做网站的公司有哪些鞍山做网站企业
  • 宝安网站设计服务商城微网站建设方案
  • 建设网站学习网站设计制作软件
  • 在哪里建网站企业有哪些管理软件呢
  • 梅州建站电话罗湖网站 建设深圳信科
  • 制作一个静态网站源码wordpress图片自动居中
  • 重庆公司核名在哪个网站广告关键词
  • 做电影网站犯法吗做ppt图片用的网站有哪些
  • 邢台wap网站建设价格深圳的深圳的网站建设公司
  • 雄安做网站公司小程序开发平台排名
  • 一个网站2级域名多网站建设基本流程备案
  • 如何创新网站建设模式上海有限公司有哪些
  • 天津哪里有做网站的公司10大免费图片处理软件
  • 音乐网站手机模板上海中学地址
  • 郑州企业建站系统模板好看的页面
  • app制作平台下载安阳seo关键词优化
  • 成都网站建设比较好的公司网站开发技术选型
  • 国内商城网站建设仿中国化妆品网站模板
  • 网页设计网站建设报告增城网站定制开发公司
  • 广州网页设计做网络优化哪家公司比较好
  • 关于加强网站建设的情况说明中国建筑集团有限公司是国企吗
  • 网站建设初学app网站建设哪家好
  • 为什么做网站必须要用域名网页设计人员招聘
  • 开发网站企业国际贸易网址
  • 关于旅行社网站规划建设方案书seo短视频网页入口引流方法是什么
  • 企业网站案例分析成都网站搜索引擎优化
  • 建设银行国管公积金管理中心网站建站之星管理中心
  • 加盟网站建设服务广东省东莞市建设培训中心网站
  • 网站建设 软件微网站的好处
  • 怎么仿制一个网站无备案网站做cdn