1。 设有字符序列(Q,H,C,Y,P,A,M,S,R,D,F,X),问新序列(F,H,C,D,P,A,M,Q,R,S,Y,X)是下列哪一个排序算法一趟扫描的结果?
A) 起泡排序 B) 初始步长为4的希尔排序
C) 二路归并排序 D) 以第一元素为分界元素的快速排序
答案是什么 最好有过程!
谢谢!
1。 设有字符序列(Q,H,C,Y,P,A,M,S,R,D,F,X),问新序列(F,H,C,D,P,A,M,Q,R,S,Y,X)是下列哪一个排序算法一趟扫描的结果?
A) 起泡排序 B) 初始步长为4的希尔排序
C) 二路归并排序 D) 以第一元素为分界元素的快速排序
答案是什么 最好有过程!
谢谢!
答案是:d
先说方法:快速排序是以一个元素为分界点,把一维数组中的元素按某种规律分成前后两部分。此题中按字母的先后顺序分的。
步骤:在操作时要多声明一个空间,吧Q放进去原有Q空间空出(先从后面比较一到这头有空间空出换另一头比较)
1.先用Q与X比较,显然H在前面,则不操作 (最后一个比较)
2.用Q与F比较,显然F在前面,则把F放进Q原有空间。F原有空间空出(倒数第二个比较)
3用Q与H比较,显然H在前面,则不换位(与正数第二个比较)
4.用Q与C比较,显然C在前面,则不换位(与正数第三个比较)
6.用Q与Y比较,显然Q在前面,则把Y放进F原有空间。Y原有空间空出(换头比较)
7.用Q与D比较,显然D在前面,则把D放进Y原有空间。D原有空间空出(换头比较)
8.用Q与P比较,显然P在前面,则不换位
9.用Q与A比较,显然A在前面,则不换位
10.用Q与M比较,显然M在前面,则不换位
11.用Q与S比较,显然Q在前面,则把S放进D原有空间。S原有空间空出(换头比较)
12.用Q与R比较,显然Q在前面,则不换位
13.最后把Q放进S原有空间