c语言(排序算法)

  • 插入排序(把元素分为两堆排好的一堆,未排序的一堆,每次从未排序的一堆中去一个元素插入到一排好的序

    

void input_select(int buf[],int ilen)
{
        int i,j,k=0;
        for(i=0;i<ilen;i++)
        {
                j=i;
                k=buf[i];
                while(j>0&&buf[j-1]<k)
                {
                        buf[j]=buf[j-1];
                        j--;
                }
                buf[j]=k;
        }
        for(i=0;i<ilen;i++)
        {
                printf("%d",buf[i]);
        }

}
 

  • 冒泡排序(思想,在同一时刻对两个数组元素进行比较,并交换位置)

#include<stdio.h>
void main()
{
    int buf[10]={2,1,5,7,9,3,4,6,0,8};
        int i=0,j=0,k=0,t=0;
        for(i=0;i<10;i++)
        {    printf("第i次: ");
             for(t=0;t<10;t++)
              {
                printf("%d ",buf[t]);


              }
                printf("\n");
             for(j=0;j<10-i-1;j++)
             {
                if(buf[j]>buf[j+1])
                {
                        k=buf[j];
                        buf[j]=buf[j+1];
                        buf[j+1]=k;
                }
             }
        }
          for(i=0;i<10;i++)
            {
              printf("%d",buf[i]);
            }
}

#include<stdio.h>
int getmax(int buf[],int ilen)
{
        int max=0,i=0,j=0;
        for(i=0;i<ilen;i++)
        {
                if(buf[max]<buf[i])                监哨值法
                {
                        max=i;
                }
        }
        return max;


}

  • 选择排序算法(思想:每次取最值 放在循环位)

void sort_select(int buf[],int ilen)
{
        int i=0,j=0,max=0;
 for(i=0;i<ilen-1;i++)
        {
                max=i;
                for(j=i+1;j<ilen;j++)
                {
                        if(buf[max]<buf[j])
                        {

                                max=j;
                        }
                }
                if(max!=i)
                {
                buf[i]+=buf[max];
                buf[max]=buf[i]-buf[max];
                buf[i]-=buf[max];
                }
        }
}
 

猜你喜欢

转载自blog.csdn.net/moon_rern/article/details/81066006
今日推荐