有趣的排序
2017-05-14 08:08
253 查看
[编程题] 有趣的排序
时间限制:1秒
空间限制:32768K
度度熊有一个N个数的数组,他想将数组从大到小排好序,但是萌萌的度度熊只会下面这个操作:
任取数组中的一个数然后将它放置在数组的最后一个位置。
问最少操作多少次可以使得数组从小到大有序?
输入描述:
输出描述:
输入例子:
输出例子:
我的思路是,先再开一个与原来数组等长的数组,然后不断模拟从原来数组找出最大的数放到第二个数组最后一个位置上,
等到原来的数组剩下的数有序,就完成了排序。
#include<stdio.h>
#include<iostream>
using namespace std;
int max1(int a[],int n,int &index){
int i;
int max = a[0];
index = 0;
for(i=1;i<n;i++){
if(a[i]>max){
max = a[i];
index = i;
}
}
return max;
}
int can(int a[],int n){
int flag =1,i;
int cur = a[0];
for(i=1;i<n;i++){
if(a[i]==-1001){
continue;
}
if(a[i]>cur){
cur = a[i];
}
if(a[i]<cur){
flag = 0;
}
}
return flag;
}
int main(){
int n,i,j,k;
int temp;
int time =0;
int index;
int max;
int a[102];
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(i=n;i<2*n;i++){
a[i]=0;
}
while(can(a,n)==0){
max = max1(a,n,index);
temp = a[index];
a[index] =-1001;
a[2*n-time-1] =temp;
time++;
}
printf("%d",time);
return 0;
}
时间限制:1秒
空间限制:32768K
度度熊有一个N个数的数组,他想将数组从大到小排好序,但是萌萌的度度熊只会下面这个操作:
任取数组中的一个数然后将它放置在数组的最后一个位置。
问最少操作多少次可以使得数组从小到大有序?
输入描述:
首先输入一个正整数N,接下来的一行输入N个整数。(N <= 50, 每个数的绝对值小于等于1000)
输出描述:
输出一个整数表示最少的操作次数。
输入例子:
4 19 7 8 25
输出例子:
2
我的思路是,先再开一个与原来数组等长的数组,然后不断模拟从原来数组找出最大的数放到第二个数组最后一个位置上,
等到原来的数组剩下的数有序,就完成了排序。
#include<stdio.h>
#include<iostream>
using namespace std;
int max1(int a[],int n,int &index){
int i;
int max = a[0];
index = 0;
for(i=1;i<n;i++){
if(a[i]>max){
max = a[i];
index = i;
}
}
return max;
}
int can(int a[],int n){
int flag =1,i;
int cur = a[0];
for(i=1;i<n;i++){
if(a[i]==-1001){
continue;
}
if(a[i]>cur){
cur = a[i];
}
if(a[i]<cur){
flag = 0;
}
}
return flag;
}
int main(){
int n,i,j,k;
int temp;
int time =0;
int index;
int max;
int a[102];
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(i=n;i<2*n;i++){
a[i]=0;
}
while(can(a,n)==0){
max = max1(a,n,index);
temp = a[index];
a[index] =-1001;
a[2*n-time-1] =temp;
time++;
}
printf("%d",time);
return 0;
}
相关文章推荐
- 一个有趣的python排序模块:bisect
- [编程题] 有趣的排序
- 有趣的排序——百度2017春招
- 有趣的排序
- 【Codeforces Round 335 (Div 2) C】【贪心 脑洞 有趣排序】Sorting Railway Cars 全排列排序可以提前后提后的最小操作数
- 有趣的排序,百度2017春招第四题
- 几种有趣的不常见排序
- 一个有趣的排序算法—睡眠排序
- 四道有趣的单链表面试题(单链表反序、找出链表的中间元素、链表排序、判断一个单链表是否有环) (转)
- 一个有趣的python排序模块:bisect
- 百度2017春招笔试真题编程题集合:有趣的排序 [python]
- 4--百度2017春招笔试真题编程题集合--有趣的排序 (Python)
- 百度2017春招笔试真题编程题之有趣的排序
- 四道有趣的单链表面试题(单链表反序、找出链表的中间元素、链表排序、判断一个单链表是否有环
- 百度笔试题——有趣的排序
- 有趣的排序
- 【算法总结系列-2】有趣的排序-冒泡排序-C++演示
- 百度--有趣的排序
- 【算法题】有趣的排序
- 数据结构杂谈(二)简单有趣的地精排序Gnome sort