文章目录
1 排序
Gnome排序
略去大括号
naiveGnomesort( s[],n)
for ( int i=1; i<n; ;)
if (i<1 || s[i-1]<= s[i])
i++;
else
swap( s[i-1],s[i] ); i--;
顺序则前进,遇逆序则折返,直到不再逆序或达到头部
效率较低:
若初始序列最开始完全逆序,需要进行 n(n+1)/2 次
稍作改进:
improvedGnomesort( s[],n)
for ( int =1; k<n; k++)
for (int i=k; 0<i && s[i-1]> s[i]; i--)
swap( s[i-1],s[i] );
BubbleSort
两两相邻的关键字,若反序则交换,直到没有反序的记录为止。
两层循环
for (i=