列表

详情


CC6. 牛牛的排序

描述

牛牛试图给一个长度为 n 整数数组排序,即实现一个 void sort(int *array,int n) 

输入描述

第一行输入一个正整数 n ,表示数组长度。
第二行输入 n 个正整数,表示数组中每个元素的值

输出描述

输出排序后的数组

示例1

输入:

5
2 9 8 1 3

输出:

1 2 3 8 9

原站题解

C 解法, 执行用时: 2ms, 内存消耗: 284KB, 提交时间: 2022-07-03

#include<stdio.h>
void sort(int *arr,int n)
{
    int i,j,temp;
    int min=arr[0];
    for(i=0;i<n-1;i++)
    {    
        int index=i;
        for(j=i;j<n;j++)
            {
                if(arr[index]>arr[j])
                {
                    index=j;
                 
                }
            }
        if(index!=i)
        {
             temp=arr[index];
                    arr[index]=arr[i];
                    arr[i]=temp;            
        }
    }
    
    
                   for(i=0;i<n;i++)
                   {
                       printf("%d ",arr[i]);
                   }
}
int main ()
{
    int arr[20]={0};
    int i,n,temp;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&arr[i]);
    }
    sort(arr,n);
    
   
                   
    return 0;
}

C 解法, 执行用时: 2ms, 内存消耗: 296KB, 提交时间: 2022-04-02

#include <stdio.h>

void sort(int *array,int n)
{
    for(int i=0;i<n-1;i++)
    {
        for (int j=0;j<n-1;j++)
        {
            
            if(array[j]>array[j+1])
            {
                int temp=array[j];
                array[j]=array[j+1];
                array[j+1]=temp;
            
            }
        }
    }
    
}

int main()
{
     int n=0;
     int arr[100]={0};
   scanf("%d",&n);
for(int i=0;i<n;i++)
{
    scanf("%d ",&arr[i]);
}
sort(arr,n);
   for(int i=0;i<n;i++)
{
    printf("%d ",arr[i]);
} 

    return 0;
}

C 解法, 执行用时: 2ms, 内存消耗: 296KB, 提交时间: 2022-03-06

#include <stdio.h>
#include <malloc.h>

int* sort(int* p, int size)
{
    int i, j;
    int temp = 0;
    for (i=0; i< size-1; i++)
    {
        for (j=0; j<size-i-1; j++)
        {
            if (p[j] > p[j+1])
            {
                temp = p[j];
                p[j] = p[j+1];
                p[j+1] = temp;
            }
        }
    }
    
    return p;
}

int main()
{
    int n;
    scanf("%d", &n);
    int* p = (int*)malloc(n*sizeof(int));
    int *re = p;
    
    int m=0;
    int i;
    
    while ((scanf("%d ", &m)) != EOF)
    {
        *p = m;
        p++;
    }
    
    p = re;
    sort(p, n);
    
    for (i=0; i<n-1; i++) printf("%d ", p[i]);
    printf("%d\n", p[n-1]);
    
    
    return 0;
}

C 解法, 执行用时: 2ms, 内存消耗: 300KB, 提交时间: 2022-03-09

#include <stdio.h>
int* sort(int* p, int size)
{
    int i, j;
    int temp = 0;
    for (i=0; i< size-1; i++)
    {
        for (j=0; j<size-i-1; j++)
        {
            if (p[j] > p[j+1])
            {
                temp = p[j];
                p[j] = p[j+1];
                p[j+1] = temp;
            }
        }
    }
    return p;
}
int main()
{
    int n;
    scanf("%d", &n);
    int arr[n];
    for(int i=0;i<n;i++)
    {
        scanf("%d",&arr[i]);
    }
    sort(arr, n);
    for (int i=0; i<n; i++) 
        printf("%d ", arr[i]);
    return 0;
}

C 解法, 执行用时: 2ms, 内存消耗: 304KB, 提交时间: 2022-03-31

void sort(int *array,int n) 
{
    for(int i=0;i<n-1;i++)
    {
        for(int j=0;j<n-i-1;j++)
        {
            if(array[j]>array[j+1])
            {
                array[j]^=array[j+1]^=array[j]^=array[j+1];
            }
        }
    }
}
int main()
{
   int n;
    scanf("%d",&n);
    int a[n];
    for(int i=0;i<n;i++)
        scanf("%d",&a[i]);
    sort(a,n);
    for(int i=0;i<n;i++)
        printf("%d ",a[i]);
}

上一题