定义函数void sort(int a[],int n),用选择法对数组a 中的元素升序排列。自定

2024-12-01 18:25:11
推荐回答(5个)
回答(1):

#include 
void sort(int a[],int n);
int main()
{
   罩冲漏 int a[]={10,8,6,3,2,5,7,9},i;
    sort(a,8);
    printf("数组{10,8,6,3,2,5,7,9}排序后:\n");
    for(i=0;i<8;i++)
        printf("%d ",a[i]);
    printf("\n");
}
void sort(int *a,int n)
{
    int i,j,k;
    for(i=0;i  物烂  {
        k=i;
        判笑for(j=i+1;j            if(a[k]>a[j])
                k=j;
        if(k!=i)
            a[k]^=a[i],a[i]^=a[k],a[k]^=a[i];
    }
}

回答(2):

#include 
#include
// 选择插入法排序
void sort(int a[], int n)
{
    int i, j, k, tmp;
       
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < i; j++)
            if (a[i] < a[j]) break; // 找到待插位置
           
        tmp = a[i]; // 临时变量记录待插的值
           
        // 移出插入空间
        for (k = i; k > j; k--) a[k] = a[k - 1];
           
        // 插入
        a[j] = tmp;
    }
}
int main()
{
    int *a, n, i;
       
    scanf("%d", &n); // 输入数据数量
    if (n > 0)
    {
        毕燃简a = (int *)malloc(n * sizeof(int)); // 动态申请数组空间
   段正        
        // 输入数据
        for (i = 0; i < n; i++) scanf("%d", &a[i]);
           
        // 排序
        sort(a, n);
           
        // 输出排序后的结果
        printf("After sorted the array is:");
        for (i = 0; i < n; i++) printf("%d ", a[i]);
        printf("\n");
          手裤 
        free(a); // 释放内存
    }
       
    return 0;
}

回答(3):

#include #include // 选择插入法排序void sort(int a[], int n){ int i, j, k, tmp; for (i = 0; i < n; i++) { for (j = 0; j < i; j++) if (a[i] < a[j]) break; // 找到待插位置 tmp = a[i]; // 临时变量记录待插的值 // 移出插入空间 for (k = i; k > j; k--) a[k] = a[k - 1]; // 插入 a[j] = tmp; }}int main(){ int *a, n, i; scanf("%d", &n); // 输入数据数量 if (n > 0) { a = (int *)malloc(n * sizeof(int)); // 动态申请数组空颂皮闷间握逗 // 输入数据 for (i = 0; i < n; i++) scanf("%d", &a[i]); // 排序 sort(a, n); // 输出排序后的结果野弯 printf("After sorted the array is:"); for (i = 0; i < n; i++) printf("%d ", a[i]); printf("\n"); free(a); // 释放内存 } return 0;}

回答(4):

//从小到数宏大的排序
int i,j;
int temp;//瞎毕基临时
for(i=0;i for(j=i+1;j<磨谨n;j++)
if(a[i]>a[j])
{a[i]=temp;temp=a[j];a[j]=a[i];}

回答(5):

排序算法冒泡,快排,堆排序,桶排序,插入排序,好多啊,你要哪一种