1 冒泡排序
#include<stdio.h>
#include<stdlib.h>
int bubble(int array[],int n);
int main(){
int n,i;
scanf("%d",&n);
int *p=(int *)malloc(n*sizeof(int));
for(i=0;i<n;i++)
scanf("%d",&p[i]);
bubble(p,n);
for(i=0;i<n;i++)
printf("%d ->",p[i]);
return 0;
}
int bubble(int array[],int n){
int m,j,temp;
for(m=0;m<n;m++)
for(j=0;j<n-m-1;j++)
if(array[j]>array[j+1]){
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
return 0;
}
直接插入排序
#include<stdio.h>
#include<stdlib.h>
int bubble(int array[],int n);
int insert_sort(int array[],int n);
int main(){
int n,i;
scanf("%d",&n);
int *p=(int *)malloc(n*sizeof(int));
for(i=0;i<n;i++)
scanf("%d",&p[i]);
//bubble(p,n);
insert_sort(p,n);
for(i=0;i<n;i++)
printf("%d ->",p[i]);
return 0;
}
int bubble(int array[],int n){
int m,j,temp;
for(m=0;m<n;m++)
for(j=0;j<n-m-1;j++)
if(array[j]<array[j+1]){
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
return 0;
}
int insert_sort(int array[],int n){
int i,j,key;
for(i=1;i<n;i++){
key=array[i];
j=i-1;
for(;j>=0;j--){
if(key<array[j])
array[j+1]=array[j];
if(key>array[j])
break;
}
array[j+1]=key;
}
return 0;
}
while()
#include<stdio.h> #include<stdlib.h> #include<malloc.h> int bubble(int array[],int n); int insert_sort(int array[],int n); int main(){ int n,i,*p; scanf("%d",&n); p=(int *)malloc(n*sizeof(int)); for(i=0;i<n;i++) scanf("%d",&p[i]); //bubble(p,n); insert_sort(p,n); for(i=0;i<n;i++) printf("%d ->",p[i]); return 0; } int bubble(int array[],int n){ int m,j,temp; for(m=0;m<n;m++) for(j=0;j<n-m-1;j++) if(array[j]<array[j+1]){ temp=array[j]; array[j]=array[j+1]; array[j+1]=temp; } return 0; } int insert_sort(int array[],int n){ int l,j,key; for(l=1;l<n;l++){ key=array[l]; j = l; while(key<array[--j]){ array[j+1]=array[j]; } array[j+1]=key; } return 0; }
希尔排序快排int shell_sort(int array[],int n){ int i,j,d; int temp; d=n/2; while(d>0){ for(i=d;i<n;i++){ j=i-d; while(j>=0 && array[j]>array[j+d]){ temp=array[j]; array[j]=array[j+d]; array[j+d]=temp; j=j-d; } } d=d/2; } return 0; }
选择排序int quick_sort(int array[],int start,int end){ int i,j; int temp; i=start; j=end; if(start<end){ temp=array[start]; while(i!=j){ while(i<j &&array[j]>temp) j--; if(i<j){ array[i]=array[j]; i++;} while(i<j && array[i]<temp) i++; if(i<j){ array[j]=array[i]; j--;} } array[i]=temp; quick_sort(array,1,i-1); quick_sort(array,i+1,end); }
int select_sort(int array[],int n){ int i,j,k; int temp; for(i=0;i<n;i++) { k=i; for(j=i;j<n;j++){ if(array[j]<array[k]) k=j; } if(k!=i) { temp=array[i]; array[i]=array[k]; array[k]=temp; } } return 0; }