列表

详情


OR155. 1-10排序算法

描述

请使用random() 函数,生成 10个随机数,并对它进行升序排序 ,要求有效率。
注意:不允许使用代码库提供的 sort() 之类现成的排序函数。

输出描述

1
2
2
4
5
5
6
6
8
10

原站题解

C 解法, 执行用时: 3ms, 内存消耗: 364KB, 提交时间: 2022-05-03

#include<stdio.h>
int main(){
   int a[10];
   int i =0;
   for(i=0;i<10;i++){
       a[i]=rand();
   }
    int min;
    int k=0;
    int j;
    int t;
    for(k=0;k<10;k++){
        min =k;
        for(j=k+1;j<10;j++){
            if(a[min]>a[j])
                min=j;
            if(k!=min){
                t=a[k];
                a[k]=a[min];
                a[min]=t;
            }
        }
    }
    for(int h=0;h<10;h++)
    printf("%d ",a[i]);
    return 0;
}

C++ 解法, 执行用时: 4ms, 内存消耗: 408KB, 提交时间: 2022-03-25

#include<bits/stdc++.h>
using namespace std;

int main() {
    vector<int> vec;
    for (int i = 0 ; i < 10 ; i ++) {
        vec.push_back(rand()%100);
    }
    sort(vec.begin(),vec.end());
    auto it = vec.begin();
    while (it != vec.end()) {
        printf("%d ",*it);
        it ++;
    }
}

上一题