【51NOD-0】1018 排序

【算法】排序

#include<cstdio>
#include<algorithm>
using namespace std;
int n,a[50010];
int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++)scanf("%d",&a[i]);
    sort(a+1,a+n+1);
    for(int i=1;i<=n;i++)printf("%d\n",a[i]);
    return 0;
}

时间: 2024-08-24 16:27:07

【51NOD-0】1018 排序的相关文章

51nod 1018排序

给出N个整数,对着N个整数进行排序 Input 第1行:整数的数量N(1 <= N <= 50000) 第2 - N + 1行:待排序的整数(-10^9 <= A[i] <= 10^9) Output 共n行,按照递增序输出排序好的数据. Input示例 5 5 4 3 2 1 Output示例 1 2 3 4 5 从大到小排序 1 #include <bits/stdc++.h> 2 using namespace std; 3 int a[50050]; 4 int

八种排序算法

最近一段时间自己在研究各种排序算法,于是自己写了一个八种排序算法的集合: /************************************************************************* > Copyright (c)2014 stay hungry,stay foolish !!! > File Name: sort.cpp > Author: kanty > Mail: [email protected] > Created Time:

排序算法之一插入排序

基本思想 每次将一个待排序的记录,按其关键字大小,插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止. 分类 根据寻找插入位置方法分为 直接插入排序 折半(二分)插入排序 希尔插入排序 直接插入排序 基本思想 当插入第i(i≥1)个对象时,前面的V[0],V[1],-,V[i?1]已经排好序.这时,用V[i]的排序码与V[i?1],V[i?2],-,V[0]的排序码顺序进行比较,找到插入位置即将V[i]插入,原来位置上的对象向后顺移. 直接插入排序图示 从上到下,分别展示了直接排

数组的排序..........加深难度

var arr2=[{name:'阿拉蕾',age:9}, {name:'考拉',age:6}, {name:'靓仔',age:10}];arr2.sort(function (c,d) {//按照age由小到大进行排序 return c.age>d.age?1:-1;//c-d<0升序排序,c-d>0降序排序});console.log(arr2);//==============>[{name:'考拉',age:6},{name:'阿拉蕾',age:9},{name:'靓仔',

排序算法的实现--理解方法实现

以前也看过很多排序算法的原理,每次都想自己实现一下,一直都再拖,现在着牛课网学习算法课程,希望自己能够坚持练习. //对于一个int数组,请编写一个选择冒泡算法,对数组元素排序. //给定一个int数组A及数组的大小n,请返回排序后的数组. //测试样例: //[1, 2, 3, 5, 2, 3], 6 //[1, 2, 2, 3, 3, 5] #include <iostream> using namespace std; #include<string> void printR

C言语合并排序(兼并排序)算法及代码

合并排序也称兼并排序,其算法思惟是将待排序序列分为两局部,顺次对分得的两个局部再次运用合并排序,之后再对其停止兼并.仅从算法思惟上理解合并排序会认为很笼统,接下来就以对序列A[0], A[l]-, A[n-1]停止升序陈列来停止解说,在此采取自顶向下的完成办法,操作步调如下.(1)将所要停止的排序序列分为阁下两个局部,假如要停止排序的序列的肇端元素下标为first,最初一个元素的下标为last,那么阁下两局部之间的临界点下标mid=(first+last)/2,这两局部辨别是A[first -

三种线性排序算法(计数、基数、桶排序)的简单实现

一.计数排序 计数排序假设n个输入元素中的每一个都是介于0到k之间的整数.此处k为某个整数(输入数据在一个小范围内). 基本思想: 计数排序的基本思想是对每一个输入元素x,确定出小于x的元素的个数.然后再将x直接放置在它在最终输出数组中的位置上. 如下图所示: 由于数组中可能有相等的数,在处理时需要注意. 时间复杂度和空间复杂度分析 算法总时间Θ(k + n).当k=O(n)时,计数排序的运行时间是Θ(n). 空间复杂度是O(n+k).需要两个辅助数组:存放排序结果的数组B[n],存放临时结果的

桶排序实现(没有优化)

桶排序算法主要使用在数据分布均匀的情况,这里假设输入数据的关键字全部分布在0~100之间,因此我们这里划分为十个同[0..9],存储排序,B[i][]中存放x/10==i的元素,再对*B[i]进行插入排序,复制到数组A中结束. 插入排序代码(前面以给出): int InsertSort(int *a,int n){ //对长度为n的数组,进行插入排序,下标0~n-1 int i,j,key; for(j=1;j<n;j++){ key=a[j]; i=j-1; while(i>=0&&

8.8 冒泡排序 选择排序 二分查找 递归使用

冒泡排序: #include <stdio.h> #include <stdlib.h> #include <time.h> #define N 100000 #define M 100000 void show_arr(int * a,int n) { int i; for(i = 0; i < n; i++) { printf("%d ",a[i]); } printf("\n"); } void init_arr(in