永发信息网

C语言关键码序列 66 13 51 76 81 26 57 69 23 谁能给我解释一下答案,见详细,尤其是66怎么跑的

答案:2  悬赏:40  手机版
解决时间 2021-01-16 16:15
C语言关键码序列 66 13 51 76 81 26 57 69 23 谁能给我解释一下答案,见详细,尤其是66怎么跑的
最佳答案
快排实现的方式有很多种,上面这种实现方式是:
1.起止指针 low high,基准指针index 一开始指向最后一位元素.
2.先左边 low一直往右移,直到找到一个比index大的元素,low index交换.
3.high 左移,直到找到一个比index小的元素, high index 交换.
4.重复 2 3步 直到low = high.
全部回答
为什么不去百度百科去看一下“快速排序算法”,看完你就明白了追问看完也没明白追答
有三个指针,一个是指向 low,一个指向 high,一个指向基准,low 指针是从首元素开始,high 指针是从末元素开始的,基准指针一定指向 KEY;
循环的目的是: KEY 前面的元素小于KEY,后面的元素大于KEY;
下标从0开始,元素为 num[0]。
具体过程如下:
最开始,序列 66 13 51 76 81 26 57 69 23,low指针指向num[0] = 66,high 指针指向num[8] = 23,KEY = 首元素66;
high 指针移动方向是从后到前,直到找到比 KEY 小的值才停止,交换指向的元素与 KEY 。high 指向num[8] = 23,比 66小,交换元素,序列成为:
23 13 51 76 81 26 57 69 66 
low 指针移动方向是从前到后,直到找到比 KEY 大的值才停止。low 指向num[0] = 23,比66小,low 指针继续移动,num[1] = 13,小于66,继续移动,num[2] = 51,小于66,继续移动,num[3] = 76,大于66,停止移动,交换num[4]  与 KEY ,序列成为:
23 13 51 66 81 26 57 69 76
重复过程2,high 指向 num[8],但是你会发现,末元素 与 KEY 刚才在过程3 交换过,所以必定保证了现有序列中末元素的值大于 KEY ,所以可以跳过这个元素,从它的前一位开始(high--),num[7] = 69,大于66, 继续移动,num[6] = 57,小于66,停止移动,交换num[6] 与 KEY,序列成为:
23 13 51 57 81 26 66 69 76
重复过程3,low 指向 num[3],但是你会发现,num[3] 与 KEY 刚才在过程4 交换过,所以必定保证了num[3]  小于 KEY ,所以可以跳过这个元素,从它的后一位开始( low++),num[4] = 81,大于66,停止移动,交换元素,序列成为:
23 13 51 57 66 26 81 69 76
重复过程4,跳过 num[6](high--),num[5] = 26,小于66,停止移动,交换元素,序列成为:
23 13 51 57 26 66 81 69 76
high 和 low 指针指向的下标相同,循环停止。


我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
新买的液晶显示器色彩偏白
In my home breakfast is at 7 o’clock, wh
用实际问题与方程解答列关系式
唇膜什么牌子好?有没有人用过露茗堂的悦唇霜
苹果手机可以光用按键清除所有数据吗
散粉的作用和使用用法
换了手机存SIM卡里面的号码都不能显示怎么办
临桃到兰州开车需要多久
一九69年今年7月运势
什么硬,一个词语
耐克运动鞋男款9号是多大码
相爱久了,是不是真的都会归于平淡,没有爱情了
3000元人民币,每日收取0.05%的利息,一个月是
金方圆数控砖塔冲床油压低和弹簧有没有关系
请教如何把ipad通过小米盒子投到电视上
推荐资讯
观致发动机怎么样
用同样多的钱买练习本和橡皮,买了2本练习本
希尔系数(Hill coefficient)是什么?能不能
试述期货交易所通过哪些制度设计来实现对信用
小数位为0的数是整数还是小数
为什么我还是没人要
从华中科技大学光谷体育馆到武胜路江汉一桥怎
贵阳到都匀走哪条高速路
持械伤人和空手打人量刑标准的区别?
扭到腿筋该活动还是该休息
庭院灯从基础预埋到安装完成需要多少钱一盏
小芳这一排站了7人,小芳左边有4人右边有几个
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?