排序算法

来源:互联网 发布:行业数据查询 编辑:程序博客网 时间:2024/05/21 15:39

一、交换排序


1、冒泡排序


void bubble_sort(int arr[],int n){    int i,j;    for(i=0;i<n-1;i++)   {        for(j=1;j<n-i;j++)        {              if(arr[j-1]>arr[j])              {                     int tmp=arr[j-1];                     arr[j-1]=arr[j];                     arr[j]=tmp;              }        }   }}

2、快速排序

int partion(int arr[],int l,int r){     int i=l,j=r,x=arr[l];     if(l<r)   {       while(i<j&&arr[j]>=x)      {         j--;     }      if(i<J)     {         arr[i++]=arr[j];     }      while(i<j&&arr[i]<x)     {            i++;     }     if(i<j)    {         arr[j--]=arr[i];    }    }     arr[i]=x;      return i}void qsort(int arr[],int l,int r){    if(l<r)    {        int pi=partion(arr,l,r);        qsort(arr,pi+1,r);        qsort(arr,l,pi-1);    }}