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

青岛贸易公司 网站制作百度在线识图

青岛贸易公司 网站制作,百度在线识图,医疗器械网站模板,贵州省建设厅住房和城乡建设官网交换排序的基本思路:把序列中的两个元素进行比较,根据需求对两个元素进行交换。特点是较大的元素向序列的尾部移动,较小的元素向序列的前部移动。 hoare法 在序列中任取一个元素作为基准值,一趟排序完成之后,以基准值为…

        交换排序的基本思路:把序列中的两个元素进行比较,根据需求对两个元素进行交换。特点是较大的元素向序列的尾部移动,较小的元素向序列的前部移动。

        hoare法

        在序列中任取一个元素作为基准值,一趟排序完成之后,以基准值为分割点,左边的元素都小于基准值,右边的元素都大于基准值。

        一般选最左边的值作为基准值。定义左右两个指针,left和right。right找小于基准元素的值,left找大于基准值的元素。找到之后,把left和right的值交换,就是把小的元素往前换,大的元素往后换。注意,基准值在左边,一定让右边先走。如果基准值在右边,一定让左边先走。

           

         最后把keyi和相遇点的下标交换一下。以该keyi为界,左边的值都小于基准值,右边的值都大于基准值。之后对函数递归调用就好了。

        现在有两个问题:

        1、为什么基准值在左边,一定让右边先走?

      

        如果左边先走,left和right相遇时,不能保证相遇点的值比基准值小。

        2、为什么基准值在左边,一定让右边先走,最后相遇点的值一定比基准值小?

        相遇有两种情况。(1)在一次完成交换后,right找小,一直找到与left相遇。而这时left所指向的值是和原来的right交换来的,该值一定比基准值小。(2)right找到小,left找大一直找到与right相遇,该值也比基准值要小。

//交换两个值
void Swap(int* p, int* q)
{int tmp = *p;*p = *q;*q = tmp;
}
//hoare法
int PartSort1(int* a, int left, int right)
{int keyi = left;//一般选第一个为基准值while (left < right){//这里也要控制left<right,有可能序列已经有序,right会一直减到小于0,造成越界访问//right找小while (left < right && a[right] >= a[keyi]){right--;}//left找大while (left < right && a[left] <= a[keyi]){left++;}Swap(&a[left], &a[right]);//交换left和right最终指向的值}Swap(&a[keyi], &a[left]);//交换基准值和相遇点的值Swap(&keyi, &left);return keyi;
}void QuickSort(int* a, int left, int right)
{if (left >= right)//区间只有一个值或者区间不存在,直接返回{return;}int begin = left;//记录区间第一个元素的下标int end = right;//记录区间最后一个元素的下标int keyi = PartSort1(a, left, right);//一趟排序//序列被划分为三个部分//[begin,keyi-1] keyi [keyi+1,end]QuickSort(a, begin, keyi - 1);//对左区间排序QuickSort(a, keyi + 1, end);//对右区间排序
}
http://www.dtcms.com/wzjs/455999.html

相关文章:

  • 网站建设发布太原百度seo
  • 虚拟服务器搭建深圳seo公司助力网络营销飞跃
  • 吉林省住房和建设厅网站大连网站建设费用
  • 做网站多少钱PageAdmin北京seo教师
  • 做境外网站自己建网站要花多少钱
  • 建设项目试运行备案申请网站小程序开发工具
  • 广告店需要学什么技术seo赚钱吗
  • 网站建设设计流程优化网站排名公司
  • 俄罗斯邪恶做a视频网站快速排名优化公司
  • 最好用的网站建设软件网络营销方式方法
  • 济南手工网站建设网上的推广公司
  • 欧美电影免费网站域名状态查询工具
  • 腾讯风铃怎么做网站优化设计五年级下册数学答案
  • mac wordpress传不了图片seo研究协会
  • 百度网站认证v1快速整站优化
  • 宣城建设网站湖北网站建设制作
  • 新闻cms静态网站模板下载百度账号登录入口
  • php电影网站开发成都网络推广外包公司哪家好
  • 型云网站建设电商
  • 苏州论坛型网站建设seo排名第一的企业
  • 做金融行业网站百度业务范围
  • 沈阳专业制作网站公司吗天津seo诊断
  • 武汉做网站比较好的公司抖音seo
  • 怎么做一考试网站在哪个网站可以免费做广告
  • 宝安做棋牌网站建设哪家便宜免费推广的方式
  • 专业企业网站建设公司价格搜索引擎优化是什么意思啊
  • 给个高质量的网站app开发多少钱
  • 做网站广告哪家好it培训课程
  • 哈尔滨网站开发长沙做网站推广
  • 政府网站集约化建设存在问题青岛seo全网营销