对n个桶中不同颜色的砾石进行排序
算法思路,对顺序表进行排序操作。设计内容及分析过程:
在此设立三个指针分别为s,p和q,其中s指向线性表的L.elem[0],即第一个元素,p=s+1,即p指向线性表的第二个元素L.elem[1],q指向线性表的最后一个元素。
查找时,当指针p不等于q时,首先判断s所指向的元素是否为’a’,如果是,则s指针向后滑一个位置,同时p指针也向后滑一个位置。然后判断q所指向的元素是否为’c’,如果是,则q指针向前滑一个位置。
如果指针s所指向的元素为’c’时,则与指针q所指向的元素交换,指针s的位置不变,q指针向前滑一个位置,如果指针q所指向的元素为’a’时,则与指针s所指向的元素交换,指针q的位置不变,s指针向后滑一个位置,同时,p指针也向后滑一个位置。如此循环下去,直到指针p等于q时,退出循环。
该程序实现了对n个桶中不同颜色的砾石进行排序,而且在查找过程中对每粒砾石的颜色只观察了一次.
提示:以上“a”、“c”表示不同的颜色。
帮忙给个源程序我研究