插入排序
void insertsort(char a[],int n){
int p,i;
char tmp;
for(p=1;p<n;p++){
tmp=a[p];
for(i=p;i>0&&a[i-1]>tmp;i--){
a[i]=a[i-1];
}
a[i]=tmp;
}
}
希尔排序
void shellsort(int A[],int n){
int d,i,j,temp;
for(d=n/2;d>=1;d=d/2
for(i=d;i<n;i++){//增量为i++,即各个子表交错处理
if(A[i]<A[i-d]){
temp=A[i];
for(j=i-d;j>=0&&temp<A[j];j-=d){
A[j+d]=A[j];
}
A[j+d]=temp;
}
}
}
}
选择排序
void selectsort(int a[],int n){
int min;
for(int i=0;i<n;i++){
min=i;
for(int j=i;j<n;j++){
if(a[j]<a[min]){
min=j;
}
}
swap(a[min],a[i]);
}
for(int i=0;i<n;i++){
cout<<a[i]<<" ";
}
cout<<endl;
}
冒泡排序
void bubblesort(int a[],int n){
for(int i=0;i<n;i++){
for(int j=0;j<n-1;j++){
if(a[j]>a[j+1]){
swap(a[j],a[j+1]);
}
}
}
for(int i=0;i<n;i++){
cout<<a[i]<<" ";
}
cout<<endl;
}
快速排序
void Qsort(int a[],int start,int end){
if(start<end){
int i=start,j=end,tmp=a[start];
while(i<j){
while(i<j&&a[j]>=tmp){
j--;
}
if(i<j){
a[i++]=a[j];
}
while(i<j&&a[i]<tmp){
i++;
}
if(i<j){
a[j--]=a[i];
}
}
a[i]=tmp;
if(start<i){
Qsort(a,start,i-1);
}
if(i<end){
Qsort(a,i+1,end);
}
}
}