冒泡排序
int i,j,temp; //定义 外层循环变量i内层循环变量 j临时变量temp
for(i=0;i<len-1;i++){ //外层 控制 元素 比较多少趟
for(j=0;j<len-i-1;j++){ //内层 控制 元素 一趟比较的次数
if(arr[j]>arr[j+1]){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
选择排序
int i,j,min,temp;
for(i=0;i<len;i++){
min=i;
for(j=i+1;j<len;j++){
if(arr[j]<arr[min]){
min=j;
}
}
if(min!=j){
temp=arr[min];
arr[min]=arr[i];
arr[i]=temp;
}
}
直接插入排序
int i,j,temp;
for(i=1;i<len;i++){
temp=arr[i];
for(j=i-1;j>=0&&arr[j]>temp;j--){
arr[j+1]=arr[j];
}
arr[j+1]=temp;
}
希尔排序
shellinsert(int arr[],int len,int dk){
int i,j,temp;
for(i=dk;i<len;i++){
if(arr[i]<arr[i-dk]{
temp=arr[i];
j=i-dk;
for(j=i-dk;j>=0&&arr[i]>temp;j=j-dk){
arr[j+dk]=arr[j]
}
arr[j+dk]=temp;
}
}
}
快速排序
int fenqu(int arr[],int low, int high){
int p=arr[low]
while(low<high){
while(low<high&&arr[high]>=p){
high--;
}
arr[low]=arr[high];
while(low<high&&arr[low]<=p){
low++;
}
arr[high]=arr[low];
}
arr[low]=p;
return low;
}
int quicksort(int arr[],int low,int high){
if(low<high){
int p=fenqu(arr,low,high);
quicksort(arr,low,p-1);
quicksort(arr,p+1,high);
}
}