单纯思路。
快速排序,假如有数字7,5,4,3,6.
那么思想是这样的第一轮快排得到:6,5,4,3,7.
设立i,j分别为a[0]及a[N-1];a[0] = key;现在关键值key = 7
那么第一次快排后,根据原则。从尾部开始比对key值小于则调换a[j]和key值。否则继续j--;
那么接着根据快排原则,i++向前搜索,探索比较是否有大于key的值,有的话交换,没有的话继续i++;
发现没有一个值大于7的于是乎,最后快排结果为6,5,4,3,7。之后在分别的key值两边的数快排以此推到。
归并排序,假如有数字6,5,2,1,15,4
首先以分的原则,分为T1[]={6,5,2}和T2[]={1,15,4}两部分进行排序得到:{2,5,6}和{1,4,15}
之后设立一个T[],将T1[]和T2[]的数字,设i和j为T1,T2数组坐标。之后进行数字比较。若T1[i]<T2[j],那么将T1[i]记录到T[]中,并且下标i++;
继续比较T1与T2的大小,直到T1或者T2数组中没有元素。再把剩余的T1或者T2的元素连到T[]下。
示例:
T[]= {1};//T1={2,5,6};T2={4,15}
T[]={1,2};//T1={5,6};T2={4,15}
T[]={1,2,4};//T1={5,6};T2={15}
T[]={1,2,4,5};//T1={6};T2={15}
T[]={1,2,4,5,6,15}
*这样看来无论是链表、哈希表。还是在归并排序当中的应用。都是以计算机空间为代价,来换取效率上的优越。就是所谓的空间换时间了。半夜突想排序!仅仅范例!