10-排序6 Sort with Swap(0, i) (25分)
来源:互联网 发布:开源的网管软件 编辑:程序博客网 时间:2024/06/05 03:18
//表排序/*题意:给定N个数字的排列,利用与0的交换来排序,引理:N个数字的排列有若干个独立的环组成,环分为三种:1.只含一个元素:无需交换2.环中有0:只需n-1次交换3.环中无0:需要先把0换到环中,在进行n+1次交换*/#include <stdio.h>#define maxn 100005int a[maxn], table[maxn];int main() { int N, temp = 0, x = 0, ans = 0; int i, j, cnt = 0, flag = 0; scanf("%d", &N); for(i = 0; i < N; i++) { scanf("%d", &a[i]); table[a[i]] = i; } for(i = 0; i < N; i++, cnt = 0) { if(table[i] != i) { j = i; temp = a[i]; } while(table[j] != j) { if(a[j] == 0) flag = 1; x = j; j = table[j]; a[x] = a[j]; table[x] = x; cnt++; } a[x] = temp; if(cnt) { if(flag) { ans += cnt-1; flag = 0; } else ans += cnt+1; } } printf("%d\n", ans);}
阅读全文
0 0
- 10-排序6 Sort with Swap(0, i) (25分)
- 10-排序6 Sort with Swap(0, i) (25分)
- 10-排序6 Sort with Swap(0, i) (25分)
- 10-排序6 Sort with Swap(0, i) (25分)
- 10-排序6 Sort with Swap(0, i)
- 10-排序6 Sort with Swap(0, i)
- Sort with Swap(0, i)
- Sort with Swap(0, i)
- 浙大PAT-Sort with Swap(0, i)
- pat--Sort with Swap(0, i)
- 5-16 Sort with Swap(0, i)
- 08-排序5. Sort with Swap(0,*) (25)
- PAT 数据结构 08-排序5. Sort with Swap(0,*) (25)
- Sort with Swap(0,*) (25)
- Sort with Swap(0,*)(25)
- DS Homework 7-1 Sort with Swap(0, i)
- 1067. Sort with Swap(0,*) (25)
- 1067. Sort with Swap(0,*) (25)
- 哈希表的使用-11-散列1 电话聊天狂人
- 【python】用selenium webdriver做简单的表格提交
- QT学习笔记(5)对话框(2)
- MLP(多层神经网络)介绍
- Larbin学习小结
- 10-排序6 Sort with Swap(0, i) (25分)
- 所谓代码,便是写和记。
- SQL2005四个排名函数(row_number、rank、dense_rank和ntile)的比较
- C++STL函数大全 函数讲解摘自文库
- Android中距离单位解析
- 问题:plugin with id 'android' not found
- 1011. A+B和C
- 爬虫Larbin解析(一)——Larbin配置与使用
- java良好的编程习惯