每日一题——排序(从1-n连续的数进行排序)
来源:互联网 发布:js怎么获取对象的长度 编辑:程序博客网 时间:2024/03/29 18:14
有一堆从1到n连续的n个数,要求进行排序,时间复杂度是O(N)
思路:从第一个数开始,使得a[i]与a[a[i] - 1]进行交换,直至 i == a[i]-1,即该值已回到了自己的所在位置(0对应1,1对应2,…),然后i++;直至结束。
void sort(int a[],int len){ int i = 0; for(;i<len;) { int tmp = a[i]; a[i] = a[a[i]-1]; a[a[i]-1] = a[i]; if(a[i] == i+1) i++; }}
阅读全文
0 0
- 每日一题——排序(从1-n连续的数进行排序)
- java每日一题:给定一个正整数n,将1到n进行字典排序,并输出
- Java中从m个数中随机选取n个不同的数(m>=n),并进行排序
- 每日一题21:从0打印到具有n位整数的最大数
- 每日一题:给定n, 求出小于n的所有数中1的位数
- 每日一题——二进制数1的个数
- 每日一题32:排序
- <每日一题>快速排序
- <每日一题>冒泡排序
- 每日一题(10)——统计连续数字中1的个数
- 每日一题(10)——统计连续数字中1的个数
- 每天写一点代码----N个连续数的排序算法(庞果网)
- 每日一题(58) - 从1到n整数中1出现的次数
- 每日一题--从1到n整数中1出现的次数
- 从键盘输入n个数,对n个数进行排序
- JS——对三个数进行排序(降序)
- 每日一题--和为s的两个数||和为s的连续整数列
- 定义一个一维数组,其元素个数从键盘中输入,元素的值为[100,200]的随机整数。 (1)输出数组的每个数 (2)对数组的数进行升序排序,输出排序后的数组元素 (3)从键盘上输入一个整数,查找该整数是
- 从K近邻算法、距离度量谈到KD树、SIFT+BBF算法
- 用Python学《微积分B》(Unit Test 1)
- 浅谈hibernate的sessionFactory和session
- 逆向实战之计算管家会员破解
- 20170809工作记账流水(2017-08-09 10:00)
- 每日一题——排序(从1-n连续的数进行排序)
- Coding心得
- 400. Nth Digit
- 【codevs 1557】热浪(SPFA)
- 深度学习网络搭建与编程范式
- 因为方言问题使得hibernate在eclipse上建表失败
- HashMap常见面试问题总结
- 关于JAVA接口
- 覆盖和多态的条件