pat 1067. Sort with Swap(0,*) (25)
来源:互联网 发布:war包解析源码 编辑:程序博客网 时间:2024/04/30 07:16
这一点输入短小易于理解的模拟题,就喜欢这样的题。
方法很简单,a[0]为非0的时候循环交换,把a[0]位置上的数放到正确的位置,直到a[0]等于0,
这个时候可能没有完全排好序,所以要有一个函数需要不在正确位置上的数。
注意这个函数,不能每次都从1开始寻找,要从上次找到的位置开始寻找,要不然会超时。
代码如下:
#include <iostream>using namespace std;int a[100001]={0};int N;int findBegin(int begin) //begin 是上次函数执行找到的位置,这个很重要{for(int i = begin;i<N;i++)if(a[i] != i){return i;}return 0;}int main(){scanf("%d",&N);int begin = 1;int num = 0;int i = 0;for(i = 0;i<N;i++){scanf("%d",&a[i]);}begin = findBegin(begin);while(begin){if(a[0] == 0){num++;int temp = a[begin]; a[begin] = a[0]; a[0] = temp;}while(a[0] != 0){num++;int j = a[0];a[0] = a[j];a[j] = j;}begin = findBegin(begin);}printf("%d\n",num);return 0;}
0 0
- pat 1067. Sort with Swap(0,*) (25)
- PAT 1067. Sort with Swap(0,*) (25)
- 【PAT】1067. Sort with Swap(0,*) (25)
- pat-1067. Sort with Swap(0,*) (25)
- 【PAT】1067. Sort with Swap(0,*)
- PAT|1067. Sort with Swap(0,*)
- PAT 1067. Sort with Swap(0,*)
- 【PAT】1067. Sort with Swap(0,*)
- pat 1067 Sort with Swap(0,*) (25)
- PAT 1025Sort with Swap(0,*) (25)
- pat-a1067. Sort with Swap(0,*) (25)
- PAT A1067. Sort with Swap(0,*) (25)
- PAT A 1067. Sort with Swap(0,*) (25)
- 【PAT甲级】1067. Sort with Swap(0,*) (25)
- 1067. Sort with Swap(0,*) (25) PAT甲级
- PAT甲级.1067. Sort with Swap(0,*) (25)
- PAT甲级练习1067. Sort with Swap(0,*) (25)
- PAT甲级1067. Sort with Swap(0,*) (25)
- 蜕变之路
- Vijos P1443 银河英雄传说个人通过/递交:11/25(44%)
- hadoop学习-wordcount程序c++重写执行
- 链表的正逆序打印 java语言实现
- Binary Tree Maximum Path Sum--一次没A过的题
- pat 1067. Sort with Swap(0,*) (25)
- Linux下ps aux解释
- Java高新技术怎么样
- 在GitHub上挖了两个坑
- 中秋阳澄情,“谢”礼送不停
- postgresql pdo执行query返回false
- VC中基于 Windows 的精确定时
- C++ precision() 函数
- break ,continue ,return 的区别及作用