数据结构复习中,书上各种排序代码敲一遍,加深印象!
#include<stdio.h>
#include<stdlib.h>
#define N 1000
int a[N+1];
void swap(int &a, int &b){
int temp;
temp=b;;
b=a;
a=temp;
}
void print(int a[], int n){
for(int i=1;i<n;i++)
printf("%d ",a[i]);
printf("%d\n",a[n]);
}
void updata(int a[], int n){
int i;
for(i=1;i<=n;i++){
a[i]=rand()%100;
}
}
//插入排序
void insertSort(int a[],int n){
int i,j;
for(i=2;i<=n;i++){
if(a[i]<a[i-1]){
a[0]=a[i];
for(j=i-1;a[0]<a[j];j--){
a[j+1]=a[j];
}
a[j+1]=a[0];
}
}
}
//折半插入排序
void binSort(int a[], int n){
int i,j,low,high,mid;
for(i=2;i<=n;i++){
if(a[i]<a[i-1]){
a[0]=a[i];
low=1,high=i-1;
while(low<=high){
mid=(low+high)/2;
if(a[mid]>a[0]) high=mid-1;
else low=mid+1;
}
for(j=i-1;j>&