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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言关键码序列 66 13 51 76 81 26 57 69 23 谁能给我解释一下答案,见详细,尤其是66怎么跑的相关的知识,希望对你有一定的参考价值。

若采用快速排序法
并以第一个 元素为划分基准 那么 第一趟划分结果为第一趟:基准指针与low指针一致,所以和high指针的值进行比较,不满足要求,所以low和high值互换,基准指针指向high,low的值就定了,low就往后面移动一个.
以后同上,直到low=high.
23,13,51,76,81,26,57,69,66
23,13,51,66,81,26,57,69,76
23,13,51,57,81,26,66,69,76
23,13,51,57,66,26,81,69,76
23,13,51,57,26,66,81,69,76

搜了答案还是不理解。。。

66和23比较66>23所以交换变成
23,13,51,76,81,26,57,69,66
13和66比较不交换
51和66比较不交换
76和66比较交换
23,13,51,66,81,26,57,69,76
69和66比较不交换
从这步开始,66怎么就和69比较了?
57和66比较交换
23,13,51,57,81,26,66,69,76
81和66比较交换
23,13,51,57,66,26,87,69,76
26和66比较交换
23,13,51,57,26,66,87,69,76

快排实现的方式有很多种,上面这种实现方式是:
1.起止指针 low high,基准指针index 一开始指向最后一位元素.
2.先左边 low一直往右移,直到找到一个比index大的元素,low index交换.
3.high 左移,直到找到一个比index小的元素, high index 交换.
4.重复 2 3步 直到low = high.
参考技术A 为什么不去百度百科去看一下“快速排序算法”,看完你就明白了追问

看完也没明白

追答

有三个指针,一个是指向 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 指针指向的下标相同,循环停止。


怎样判断一个单词是否ABAP中的关键字

参考技术A 重要的一点,你在ABAP编辑器中,选中你的那个单词,按F1,如果是关键字,系统会弹出相应的帮助界面,对这个关键字的用法进行解释。
当然,关键字是加粗显示、蓝色标注的。
参考技术B 在ABAP编辑器中,关键字是蓝色的,根c语言类似,还有就是,如果你输入关键字的一部分,系统会提示完整的关键字,此时,按下Table键就能让关键字完整
比如:data
当输入da时,就会出现提示DATA,
参考技术C 一般关键字打出来之后,都是加粗的黑体字,会自动加粗,没有的话,就不是。 参考技术D 设定大小写

以上是关于C语言关键码序列 66 13 51 76 81 26 57 69 23 谁能给我解释一下答案,见详细,尤其是66怎么跑的的主要内容,如果未能解决你的问题,请参考以下文章

R 报错Error in plot.new() : figure margins too large

104键键盘按键码对照

键盘按钮keyCode大全

keyCode对照表

keycode键盘 按键 - 键码 对应表

keyCode对照信息表