冒泡、插入、希尔排序

来源:互联网 发布:淘宝怎么设计 编辑:程序博客网 时间:2024/05/16 12:42
#include <stdio.h>#include <stdlib.h>#include <stdbool.h>#define true 1#define false 0inline void Swap(int *a, int *b){    int c;    c=*a;    *a = *b;    *b = c;}void Bubblesort(int a[],int n){    int i,j;    for(i=0; i<n; i++)    {        for(j=1; j<n-i; j++)        {            if(a[j]>a[j-1])                Swap(&a[j],&a[j-1]);        }    }}void Bubblesort2(int a[],int n){    int j,k;    bool flag;    k=n;    flag=true;    while (flag)    {        flag=false;        for(j=1; j<k; j++)            if(a[j-1]>a[j])            {                Swap(&a[j-1],&a[j]);                flag=true;            }        k--;    }}void Insertsort(int a[],int n){    int i,j;    int tmp;    for(i=1; i<n; i++)    {        tmp=a[i];        for(j=i; j>0 && a[j-1]>tmp; j--)        {            a[j]=a[j-1];        }        a[j]=tmp;    }}void Shellsort(int a[],int n){    int i,j;    int gap;    int tmp;    for(gap=n/2; gap>0; gap/=2)    {        for(i =gap; i<n; i++)        {            tmp=a[i];            for(j=i; j>=gap; j-=gap)            {                if(a[j-gap]>tmp)                {                    a[j]=a[j-gap];                }                else                    break;            }            a[j]=tmp;        }    }}int main(){    int a[13]= {2,4,70,97,127,304,67,77,81,83,99,10,209};    int b[6]=  {1,2,51,7,9,11};    int c[19];    int i;    Shellsort(a,13);    for(i=0; i<13; i++)        printf("%d  ",a[i]);    system("PAUSE");    return 0;}
0 0