请使用random() 函数,生成 10个随机数,并对它进行升序排序 ,要求有效率。
注意:不允许使用代码库提供的 sort() 之类现成的排序函数。
#include <stdlib.h> #include <stdio.h> int main( ) { int i,j,temp; int a[100]; int n; scanf("%d",&n);//随机数的个数 for(i = 0; i < n;i++) { a[i]=rand()%100+1;//生成n个1-100内的随机数,并存入数组a } //将数组a冒泡降序排列 for(i = 0; i < n-1;i++) for(j=0;j<n-i-1;j++) { if(a[j]<a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } for(i = 0; i < n;i++) printf("%d\n",a[i]); return 0; }这段代码仅供参考:
#include <bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; cout<<n; /* int a[n]; for(int i=0;i<n;i++) a[i] = rand()%100+1; for(int i=0;i<n-1;i++) for(int j=0;j<n-i-1;j++) if(a[j]<a[j+1]) swap(a[j], a[j+1]); for(int i=0;i<n;i++) cout<<a[i]<<endl; */ return 0; }
#include<bits/stdc++.h> using namespace std; int main(){ vector<int> a; int b; while(cin >> b){ //读入到文件末尾,或者scanf("%d",&b)!=EOF a.push_back(b); } int n = a.size(); for(;;){ bool changed = false; for(int i = 0;i < n-1;i++){ if(a[i]<a[i+1]){ swap(a[i],a[i+1]); changed = true; } } if(!changed) break; } for(int i = 0;i < n;i++) cout << a[i] << endl; return 0; }
import random x=[] for i in range(10): x.append(random.randint(1,20)) def xiersort(arr): n=len(arr) gap=n//2 while gap>0: for i in range(gap,n): temp=arr[i] j=i while j>=gap and arr[j-gap]>temp: arr[j]=arr[j-gap] j-=gap arr[j]=temp gap=int(gap/2) n=len(x) xiersort(x) for i in range(n): print(x[i],end='\t')
import java.util.Random; /** * @Author: coderjjp * @Date: 2020-05-12 22:56 * @Description: * @version: 1.0 */ public class Main { public static void main(String[] args) { Random r = new Random(); int nums[] = new int[10]; int hash[] = new int[10]; for (int i = 0; i < 10; i++){ nums[i] = r.nextInt(10); hash[nums[i]]++; } for (int i = 0; i < 10; i++){ while (hash[i] != 0){ System.out.println(i); hash[i]--; } } } }