排序

来源:互联网 发布:淘宝视频连接不是私密 编辑:程序博客网 时间:2024/06/06 12:29



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;}




0 0
原创粉丝点击