您的位置:首页 > 编程语言 > C语言/C++

来北京的日子(3)--排序算法

2015-07-14 21:42 295 查看
今天是培训的第二天,还没有正式的开课,老师给讲了冒泡排序、快速排序、插入排序算法

1.冒泡排序:

#include <stdio.h>

#include <stdlib.h>

void swap(int *a,int *b);

int main(void)

{

    int li_array[8]={6,8,2,7,9,10,5,4};

    int i,j;

    for(i=0;i<8;i++)

    {

        for(j=i+1;j<8;j++)

        {

            if(li_array[i]<li_array[j])

            {

                li_array[i]=li_array[j]^li_array[i];

                li_array[j]=li_array[i]^li_array[j];

                li_array[i]=li_array[i]^li_array[j];

            }

        }

    }

    for(i=0;i<8;i++)

    {

        printf("%4d",li_array[i]);

    }

    printf("\n");

    return 0;

}

2.冒泡排序2:

#include <stdio.h>

#include <stdlib.h>

int main(void)

{

    int li_array[8]={6,8,9,10,5,4,3,7};

    int i,j;

    for(i=0;i<8;i++)

    {

        for(j=0;j<=8-i-1;j++)

        {

            if(li_array[j]<li_array[j+1])

            {

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

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

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

            }

        }

    }

    for(i=0;i<8;i++)

    {

        printf("%4d",li_array[i]);

    }

    printf("\n");

    return 0;

}

3.插入排序:

#include <stdio.h>

#include <stdlib.h>

int main(void)

{

    int i,j;

    int li_array[8]={100,4,6,9,2,5,7,8};

    int li_tmp;

    for(i=1;i<8;i++)

    {

        li_tmp=li_array[i];

        for(j=i-1;j>-1;j--)

        {

            if(li_tmp>li_array[j])

            {

                //li_tmp=li_array[j];

                break;

            }

            else

            {

                

                li_array[j+1]=li_array[j];

                //li_array[j]=li_tmp;

            }

        }

        li_array[j+1]=li_tmp;

    }

    for(i=0;i<8;i++)

    {

        printf("%4d",li_array[i]);

    }

    printf("\n");

    return 0;

}

4.选择排序:

#include <stdio.h>

#include <stdlib.h>

int main(void)

{

    int max,k;

    int li_array[8]={1,2,5,8,9,3,4,6};

    int i,j;

    for(i=0;i<8-1;i++)

    {

        max=li_array[i];

        k=i;

        for(j=i+1;j<8;j++)

        {

            if(max<li_array[j])

            {

                max=li_array[j];

                k=j;

            }

        }

        li_array[k]=li_array[i];

        li_array[i]=max;

    }

    for(i=0;i<8;i++)

    {

        printf("%4d",li_array[i]);

    }

    printf("\n");

    return 0;

}

快速排序还没弄明白,,弄明白了再写,,,,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息