1) 稳定的:如果存在多个具有相同排序码的记录,经过排序后,这些记录的相对次序仍然保持不变,则这种排序算法称为稳定的。 插入排序、冒泡排序、归并排序、分配排序(桶式、基数)都是稳定的排序算法。
2)不稳定的:否则称为不稳定的。 直接选择排序、堆排序、shell排序、快速排序都是不稳定的排序算法。
为什么要讨论排序的稳定性呢?
答:稳定性在某种方面反映着算法的健壮性 而算法的健壮性直接影响着所在程序的健壮性
// 字符串替换函数.// 能替换所有的要替换的字符串,被替换的字符串和替换的字符串不一定一样长.// pInput - 输入字符串.// pOutput - 输出字符串, 要保证足够的空间可以存储替换后的字符串.// pSrc - 要被替换的子字符串, 比如%user%// pDst - 要替换成的字符串, 比如user1// 注意:以上的字符串均要以'\0'结尾.//void Substitute(char *pInput, char *pOutput, char *pSrc, char *pDst){ char *pi, *po, *p; int nSrc...
an = {[(1 + √5)/2]^n - [(1 - √5)/2]^n}/√5
Fibonacci数列几个性质:
F(0)=1,F(1)=1,F(2)=2……F(n+2)=F(n+1)+F(n)其通项公式为:F(n)= {[(1+√5)/2]^n+1 -[(1+√5)/2]^n-1}/√5几个性质:1. F(n-1)F(n+1)-F(n)F(n)=(-1)n+12. F(0)+F(1)+F(2)+……+F(n)=F(n+2)-13. F(0)+F(1)+F(2)+……+F(2n)=F(2n+1)4. F(1)+F(3)+F(5)+……+F(2n-1)=F(2n) -15. F(...