
在数据结构中,给出一组关键字:66,30,78,53,6,18,10,11,20,49,当要求用快速排序法按升序排序.
展开全部
简略说一下一趟快速排序思想:
1)从右边right指针处找一个比要比较数(通常是第一个数)小的,找到后放入left指针,left右移一格。
2)从左边left指针找一个比要比较数(通常是第一个数)大的,找到后放入right指针处,right左移一格。
3)当left小于right时,重复1,2步骤。
原序 66, 30, 78, 53,6, 18, 10, 11, 20, 49
第一趟排序为:49, 30, 20, 53, 6, 18, 10, 11, 66, 78
详解:
(1)先把数组第一个数66用变量暂存,从右边开始,49小于66,把49放入第一个位置,left自加一后指30.
(2)从左边left处开始找,找到78大于66,把78放入right指向处(原本49的位置),right自减一后指向20处。
(3)右边20小于66,放入原本78那个位置。
(4)左边53,6,18,10,11均小于66,直到left与right相等,处于原本20所在位置,把66放入。
1)从右边right指针处找一个比要比较数(通常是第一个数)小的,找到后放入left指针,left右移一格。
2)从左边left指针找一个比要比较数(通常是第一个数)大的,找到后放入right指针处,right左移一格。
3)当left小于right时,重复1,2步骤。
原序 66, 30, 78, 53,6, 18, 10, 11, 20, 49
第一趟排序为:49, 30, 20, 53, 6, 18, 10, 11, 66, 78
详解:
(1)先把数组第一个数66用变量暂存,从右边开始,49小于66,把49放入第一个位置,left自加一后指30.
(2)从左边left处开始找,找到78大于66,把78放入right指向处(原本49的位置),right自减一后指向20处。
(3)右边20小于66,放入原本78那个位置。
(4)左边53,6,18,10,11均小于66,直到left与right相等,处于原本20所在位置,把66放入。
更多追问追答
追问
这个是个答卷题。。。这样怎么能得分啊》??
追答
直接写第一趟排序答案,49, 30, 20, 53, 6, 18, 10, 11, 66, 78
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询