算法与数据结构 之数组(三) 趣味算法
2012-07-22 19:19
281 查看
1. 曾经面试的时候被问到一个天,就是将一个整形数组中的偶数全部放在前面,而且要保持之前的相对顺序,要求时间和空间复杂度最小
2.在一个10个整数的数组里有两个重复的数, 每个数的大小都小于10000, 要求在最最短的时间复杂度找出重复的数。
3.一个整形数组int a[100] 保存1-100 现在随机将其中两个数改为0, 找出这两个数,要求时间和空间复杂度尽量小
#include<iostream> #include<time.h> using namespace std; void even_num_first(int a[], int n) { for(int i = 0, j = 0; i < n; i++) { if(a[i] % 2 == 0) { int t = a[j]; a[j] = a[i]; a[i] = t; j++; } } } int main() { srand(time(NULL)); int a[10] = {0}; for(int i = 0; i < 10; i++) { a[i] = rand() % 10; cout<<a[i]<<' '; } cout<<endl; even_num_first(a, sizeof(a)/sizeof(a[0])); for(int j = 0; j < 10; j++) { cout<<a[j]<<' '; } cout<<endl; return 0; }
2.在一个10个整数的数组里有两个重复的数, 每个数的大小都小于10000, 要求在最最短的时间复杂度找出重复的数。
#include<iostream> using namespace std; int main() { int b[10] = {1,2,3,4,2,5,6,7,8,9}; int a[10000] = {0}; for(int i = 0; i < 10; i++) { a[b[i]] += 1; if(a[b[i]] >= 2) { cout<<a[b[i]]<<endl; break; } } return 0; }
3.一个整形数组int a[100] 保存1-100 现在随机将其中两个数改为0, 找出这两个数,要求时间和空间复杂度尽量小
#include<iostream> #include<algorithm> #include<time.h> using namespace std; int main() { srand(time(NULL)); int a[10] = {2,1,3,4,6,5,7,8,9,10}; int k1 = rand()%10; int k2 = rand()%10; while(k1 == k2) { k2 = rand()%10; } cout<<"delete "<<a[k1]<<','<<a[k2]<<endl; a[k1] = 0; a[k2] = 0; sort(a, a+10); if(a[9] != 10) cout<<10<<endl; if(a[9] != 10 && a[8] == 9) cout<<9<<endl; for(int i = 0; i < 9; i++) { if(a[i+1] - a[i] == 3) { cout<<a[i+1]-1<<endl; cout<<a[i+1]-2<<endl; break; } else if (a[i+1] - a[i] == 2) { cout<<a[i+1]-1<<endl; } } return 0; }
相关文章推荐
- c语言版数据结构(奇迹冬瓜)-数组和广义表(稀疏矩阵的转置算法一)
- 数据结构与算法之整体有序数组的查找
- 郝斌数据结构连续存储数组的算法演示
- 数据结构与算法学习笔记——数组
- 数据结构和算法—如何快速求组两个数组的交集
- KMP算法之NEXT数组代码原理分析 - 数据结构和算法38
- 算法数据结构试题——在数组中找出已知和的组成数
- 从c小白开始自学数据结构——第一天【数组及其简单算法】
- 算法与数据结构基础1:C++实现动态数组
- 数据结构与基本算法的学习笔记-数组-3
- C++类模板 实现两栈共享数组空间的算法 《数据结构》(北京科海) 自己摘抄完成
- KMP算法之NEXT数组代码原理分析 - 数据结构和算法38
- 数据结构和算法之---数组
- 数据结构和算法-数组
- 数据结构和算法-002 数组排序 冒泡排序
- 算法与数据结构:C语言的整数数组全排列(源码)
- 《算法学习与数据结构》part3 算法分析与数据结构之数组和广义表
- 微软等数据结构+算法面试100题(23)--数组中超过出现次数超过一半的数字
- javascript数据结构和算法 第二章 (数组)
- 数据结构 数组操作 稀疏矩阵采用三元组存储,设计算法求两个矩阵的和。