各种内部排序算法!! //排序算法//sunboy 2007.9.19#include <iostream>using namespace std;#define LEN 8void Print(int a[])...{ int i; for(i=0;i<LEN;i++) cout<<a[i]<<" "; cout<<endl;}void swap(int &a,int &b)...{ int tmp; tmp=a; a=b; b=tmp;}int Partion(int arr[],int low,int high)...{ int tmp=arr[low]; while(low<high) ...{ while(low<high&&arr[high]>tmp) high--; arr[low]=arr[high]; while(low<high&&arr[low]<tmp) low++; arr[high]=arr[low]; } arr[low]=tmp; return low;}void QSort(int arr[],int low,int high)...{int p;if(low<high)...{ p=Partion(arr,low,high); QSort(arr,low,p-1); QSort(arr,p+1,high);}}//快速排序void Insert_Sort(int arr[])...{ int i,j,tmp; for(i=1;i<LEN;i++) ...{ if(arr[i]>=arr[i-1])continue; tmp=arr[i]; for(j=i-1;tmp<arr[j]&&j>-1;j--) arr[j+1]=arr[j]; arr[j+1]=tmp; }}//插入排序int Min_Select(int arr[],int begin)...{ int i,flag; int min=0xfffffff; for(i=begin;i<LEN;i++) if(arr[i]<min) ...{ min=arr[i]; flag=i; } return flag;}void Bible_Sort(int arr[])...{ int i,j; for(i=1;i<LEN;i++) for(j=0;j<LEN-i;j++) ...{ if(arr[j]>arr[j+1]) swap(arr[j],arr[j+1]); }}//冒泡排序void Select_Sort(int arr[])...{ int i,j; for(i=0;i<LEN-1;i++) ...{ j=Min_Select(arr,i); if(i!=j) swap(arr[i],arr[j]); }}//选择排序void Shell_Sort(int arr[])...{ }void Merge (int arr[],int low,int mid,int high)...{ int i,b[8]; int ind1=low; int ind2=mid+1; for(i=low;i<=high;i++) b[i]=arr[i]; for(i=low;i<=high&&ind1<=mid&&ind2<=high;i++) if(b[ind1]<b[ind2]) arr[i]=b[ind1++]; else arr[i]=b[ind2++]; while(ind1<=mid) arr[i++]=b[ind1++]; while(ind2<=high) arr[i++]=b[ind2++]; }void Merge_Sort(int arr[],int low,int high)...{ int i,brr[8]; for(i=0;i<8;i++) brr[i]=arr[i]; int mid; if(low<high) ...{ mid=(low+high)/2; Merge_Sort(arr,low,mid); Merge_Sort(arr,mid+1,high); Merge(arr,low,mid,high); }}//归并排序int main()...{ int arr[8]=...{2,3,5,6,4,1,0,10}; //QSort(arr,0,7); //Insert_Sort(arr); //Bible_Sort(arr); //Select_Sort(arr); //Merge_Sort(arr,0,7); Print(arr); return 0;}