一些简单排序算法的c语言描述

冒泡排序:

int i,j;

int len = sizeof(array)/sizeof(array[0]);

for(i=len-1;i>0;i--){

  for(j=0;j<i;j++){

    if (array[j]>array[j+1]){

      array[j]^=array[j+1]^=array[j]^=array[j+1];

    }
  }
}

选择排序:

int i,j,min;

int len = sizeof(array)/sizeof(array[0]);

for(i=0;i<len-1;i++){

  min=i;

  for(j=i+1;j<len;j++){

    if (array[min]>array[j]){

      min=j;

    }

  }

  if (min!=i){

    array[i]^=array[min]^=array[i]^=array[min];

  }

}

直接插入排序:

int i,j,temp;

int len = sizeof(array)/sizeof(array[0]);

for (i=1;i<len;i++){

  temp=array[i];

  for (j=i-1;j>=0 && array[j]>temp;j--){

    array[j+1]=array[j];

  }

  array[j+1]=temp;

}

 

上一篇:结构体问题


下一篇:C语言学习