1 排序算法分析与填空 一、插入排序算法 1 .1 直接插入排序算法:---稳定性 void InsertSort(int R[],int n) { int i,j,tmp; for(i=1;i=0) { ③_________________; j--; } R[④__________________________]=tmp; } } 直接插入排序算法参考答案: ① i-1 ② R[j]>tmp ③ R[ ④j+1 ② 1 .2 希尔排序算法:---不稳定性 void ShellSort(int R[],int n) { int i,j,gap; int tmp; gap=n/2; while(gap>0) { for(i=gap;i=0&&R[j]>tmp) {R[ ②____________]=R[j];j=j-gap;} ③_____________=tmp; } ④___________________; } } 希尔排序算法参考答案: ① i-gap ② j+gap ③ R[j+gap] ④ gap=gap/2 2 二、交换排序算法 2 .1 冒泡排序算法---稳定性 改进的冒泡排序法? void BubbleSort(int R[],int n) { int i,j,tmp; for(i=0; ①_______________;i++) for(j=n-1;②______________;j--) if( ③________________ ) { tmp=R[j-1]; R[j-1]=R[j]; R[j]=tmp; } } 冒泡排序算法参考答案: ① ii ③ R[j-1]>R[j] 2 .2 快速排序法---不稳定性 更换指标的快速排序算法: void QuickSort(int R[],int s,int t) { int i=s,j=t,tmp; if(①______________) { tmp=R[s]; while( ②_______________) { while(j>i&&R[j]>tmp) j- -; R[i]=R[j]; while(ii&&R[j]>pivot) j--; while(i