poj 2388 insert sorting

/** \brief poj 2388 insert sorting 2015 6 12
 *
 * \param
 * \param
 * \return
 *
 */

#include <iostream>
#include <cstdio>
#include <cstring>

using namespace std;

const int N=10000;
int Arr[N];

void insertSort(int len)
{
    for(int j=1;j<len;j++)
    {
        int key=Arr[j];
        int i=j-1;
        while(i>=0 && Arr[i]>key)
        {
            Arr[i+1]=Arr[i];
            i=i-1;
        }
        Arr[i+1]=key;
    }
}

int main()
{
    //cout << "Hello world!" << endl;
    int n;
    scanf("%d",&n);
    //while(scanf("%d",&n))
    //{
        memset(Arr,0,sizeof(Arr));
        for(int i=0;i<n;i++)
            //scanf("%d",Arr[i]);
            cin>>Arr[i];
            insertSort(n);
        cout<<Arr[n/2]<<endl;
    //}
    return 0;
}

时间: 2024-10-20 03:14:54

poj 2388 insert sorting的相关文章

poj 3270 Cow Sorting 置换群 简单题

假设初始状态为 a:2 3 1 5 4 6 则目标状态为 b:1 2 3 4 5 6且下标为初始状态中的3 1 2 4 5 6(a[3],a[1]...) 将置换群写成循环的形式 (2,3,1),(5,4),6就不用移动了. 移动方式2种 1:选循环内最小的数和其他len-1个数交换 2:选整个序列最小的数和循环内最小的数交换,转到1,再换回来. #include<cstdio> #include<queue> #include<algorithm> #include&

poj 3270 Cow Sorting(初涉置换群)

http://poj.org/problem?id=3270 大致题意:给出n个整数,要将它们转化成递增序列,每交换其中两个数的代价是这两个数之和.问排序成功后的最小代价. 该题考察的是置换群知识.在黑书p247上有详细的讲解.总结下置换群,方便复习. 群:给定一个集合G={a,b,c...}和集合G上的二元运算 ·,如果满足封闭性,结合律,存在单位元和逆元,则成集合G在运算'·'之下是一个群. 置换:n个元素1,2,....,n之间的置换可表示为  1     2     3     ...

POJ 2388 Who&#39;s in the Middle(水~奇数个数排序求中位数)

题目链接:http://poj.org/problem?id=2388 题目大意: 奇数个数排序求中位数 解题思路:看代码吧! AC Code: 1 #include<stdio.h> 2 #include<algorithm> 3 using namespace std; 4 int main() 5 { 6 int n; 7 while(scanf("%d",&n)!=EOF) 8 { 9 int na[n+1]; 10 for(int i=0; i

POJ 2388.Who&#39;s in the Middle

Who's in the Middle Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Status Practice POJ 2388 Description FJ is surveying his herd to find the most average cow. He wants to know how much milk this 'median' cow gives

POJ 2388 Who&#39;s in the Middle 快排解法

passport.baidu.com/?business&un=%E5%B0%91%E5%A6%87%E8%8C%8C%E5%B9%B3%E5%93%AA%E6%9C%89%E6%89%BE#0 passport.baidu.com/?business&un=%E5%85%A8%E5%A5%97%E8%8E%98%E5%8E%BF%E6%89%BE%E6%9C%8D%E5%8A%A1#0 passport.baidu.com/?business&un=%E9%AB%98%E5%94

【POJ 1094】Sorting It All Out

[POJ 1094]Sorting It All Out 拓扑排序 输出第一次成功排序的位置及顺序(能顺利拓扑并在拓扑中不存在同级) 或者 第一个出现与之前给出条件相悖的位置(拓扑过程中出现间断) 坑点是出现任何一种情况就out 代码如下 #include <iostream> using namespace std; int in[26],inn[26],n; int mp[26][26]; int Topo(int op) { int i,j,k,f = 1; for(i = 0; i &

POJ 3270 Cow Sorting(置换群)

题目链接 题意 : N头牛,每个牛的坏脾气都有一个值,每个值都不相同,把这个值按照从小到大排序,如果两个值交换,那么会花掉这两个值之和的时间,让你花最少的时间将每个值从小到大排好序,求最小的总时间. 思路 : 这个在黑书上有写,就是置换群,248页有写.写的挺详细的.每个状态都可以分为若干个循环的乘积.对于任意循环 i ,设其长度为ki,则至少需要交换ki-1次,即每次让一个元素到达目标位置,而当第ki-1个元素到达目标以后显然第ki个也已经到达目标.第一个方法是让循环中最小的元素t参加所有的交

POJ 2388:Who&#39;s in the Middle

Who's in the Middle Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 31015   Accepted: 17991 Description FJ is surveying his herd to find the most average cow. He wants to know how much milk this 'median' cow gives: half of the cows give

POJ 2388(排序)

http://poj.org/problem?id=2388 题意:就N个数的中位数. 思路:用快排就行了.但我没用快排,我自己写了一个堆来做这个题.主要还是因为堆不怎么会,这个拿来练练手. 1 #include <stdio.h> 2 #include <string.h> 3 4 int arr[10005],ans,n; 5 6 void inset(int x,int y) //插入,并排序. 7 { 8 int i; 9 for(i = y; arr[ i / 2 ] &