<span style="color:#ff0000;">#include<iostream> using namespace std; #define MAXSIZE 21 typedef int SqList[MAXSIZE]; #define ElementType int void Swap(int &a, int &b) { a = a^b; b = a^b; a = a^b; } ////////////////////////////////////////////////////// void Bubble_Sort( ElementType A[], int N )//冒泡排序 { for ( int P=N-1; P>=0; P-- ) { int flag = 0; for( int i=0; i<P; i++ ) { /* 一趟冒泡*/ if ( A[i] > A[i+1] ) { Swap(A[i], A[i+1]); flag = 1; /* 标识发生了交换*/ } } if ( flag==0 ) break; /* 全程无交换*/ } } //**************************************** void Insertion_Sort( ElementType A[], int N )//插入排序 { for (int P=1; P<N; P++ ) { int Tmp = A[P]; /* 取下一个数*/ for ( int i=P; i>0 && A[i-1]>Tmp; i-- ) { A[i] = A[i-1]; /* 移出空位*/ } A[i] = Tmp; /* 新数落位*/ } } //*************************************************** void Shell_sort( ElementType A[], int N )//希尔排序 { for (int D=N/2; D>0; D/=2 ) { /* 希尔增量序列*/ for (int P=D; P<N; P++ ) { /* 插入排序,每次隔D个*/ int Tmp = A[P]; for ( int i=P; i>=D && A[i-D]>Tmp; i-=D ) { A[i] = A[i-D]; } A[i] = Tmp; } } } ////////////////////////////////////////////////////// void main() { SqList sq = { 49, 38, 65, 97, 76, 13, 27, 49 }; // Bubble_Sort(sq,8 ); // Insertion_Sort(sq,8); Shell_sort(sq,8); for (int i = 0; i < 8; ++i) { cout << sq[i] <<","; } cout << endl; } ///////////////////////////////////////////////////////</span>
时间: 2024-12-21 22:16:53