1、#includeusing namespace std;typedef int ElemType;/直接插入排序void InsertSort ( ElemType A, int n )int i, j;ElemType x;for ( i=1; i=0; j- ) /从第i-1个开始往前找插入点if ( x= 0; i-)Sift(A, n, i); /调整Ain-1使之为一个堆void Sift(ElemType A, int n, int i) / 调整Ain-1成为一个堆(它的左右子树已是一个堆)ElemType x=Ai; int j = 2 * i + 1; / j为i的左孩子wh
2、ile (j =1;i-)x = A0; /第个元素与第i个元素交换A0 = Ai;Ai = x; Sift(A, i, 0); /调整A0i-1使之为一个堆 /冒泡排序void BubbleSort( ElemType A, int n )int i, j, flag; /flag为交换标记ElemType x;for (i=1; i=i; j-) /第i 趟if ( Aj=x) j-; /从右到左 if ( i Aj;cout“排序前为:“endl;for(i=0;iN;i+)coutAiendl;cout“直接插入排序:“endl;InsertSort (A, N );for(i=0;iN;i+)coutAiendl;运 /运行结果如右;cout“直接选择排序:“endl;SelectSort(A, N);for(i=0;iN;i+)coutAiendl;cout“堆排序:“endl;HeapSort(A, N);for(i=0;iN;i+)coutAiendl;cout“冒泡排序:“endl;BubbleSort(A, N);for(i=0;iN;i+)coutAiendl;cout“快速排序:“endl;QuickSort(A,0,1);for(i=0;iN;i+)coutAiendl;