排序综合


排序综合

选择、冒泡、插入3种排序方法,通过不同的定义来选择使用的排序方法

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//#define xuanze
//#define maopao
#define charu
#ifdef xuanze 
void select_sort (int a[], int n)//选择排序
{   int i,j,min,k,t;
    for (i=1; i<n; i++)
    {   min=a[i-1];
        k=i-1;
        for(j=i; j<n; j++)
            if(a[j]<min)
            {   min=a[j]; //最小值
                      k=j;//最值的下标
                  }
        t=a[i-1];
        a[i-1]=a[k];
        a[k]=t;
    }
    for (i=0; i<n; i++)
        printf("%d\t",a[i]);
    printf("\n");
}
#endif

#ifdef maopao
//冒泡排序
void select_sort(int a[],int n)
{ int i,j,t;
    for(i=1;i<n;i++)//排序趟数
        for(j=0;j<n-1;j++)
            if(a[j]>a[j+1])
            {
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
            }
    for (i=0; i<n; i++)
        printf("%d\t",a[i]);
    printf("\n");    
}
#endif

#ifdef charu
//插入排序
void select_sort(int a[] , int n)
{int i, j;
    for(i=1;i<n; i++)
    {a[0]=a[i+1] ;
        for(j=i;a[j]>a[0];j--)
            a[j+1]=a[j];
        a[j+1]=a[0];
    } 
    for (i=0; i<n+1; i++)
        printf("%d\t",a[i]);
    printf("\n");
}
#endif

void main()
{
    int sz[]={0,49,27,38,13,76,97,65,50};
    select_sort(sz,8);
    system("pause");
}

文章作者: 刺客世家
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 刺客世家 !
 上一篇
百钱百鸡问题 百钱百鸡问题
百钱百鸡问题题目:用100元钱卖100只鸡,公鸡每只5元,母鸡每只3元,小鸡每3只1元,要求每种鸡至少买一只。试编程求各种鸡各买多少只 /***************百钱百鸡问题******************** * 用10
2020-01-08
下一篇 
求1000以内最大完数 求1000以内最大完数
求1000以内最大完数一个数如果恰好等于它的真因子之和,这个数就称为“完数”。例如:6的真因子为1、2、3,而6=1+2+3,因此6是“完数”。 #include<stdio.h> void main() { int i
2020-01-05
  目录