将数组中等于n的元素移到数组的最前面,尽量减少数组元素的移动次数和额外存储
来源:互联网 发布:go系列软件 编辑:程序博客网 时间:2024/06/15 17:20
目录
- 目录
- 题目
- 主函数main
- sort函数
题目
- 将数组中等于n的元素移到数组的最前面,尽量减少数组元素的移动次数和额外存储,比如数组为[2,4,5,2,5,8,11,44,29,16,2],n=2, 则输出数组[2,2,2,4,5,5,8,11,44,29,16],其中4,5,5,8,11,44,29,16的顺序不指定,不必维持在原数组中的顺序。
主函数main
int main(int argc, char const *argv[]){ int n,m,i=0; const int length = 4; //cout << "Input an number..."; //cout << "Input length..." ; //cout << "Input an array ..." << endl; //cin >> length;错误 //cin >> arr;错误 int arr[length] = {0};//内置数组的长度在编译的时候就必须知道,当length=4时,其实用sizeof(int)或sizeof(length)的结果是一样的,而且在编译的时候就已经知道大小了。 //int arr[length];正确 while(i<length) { cin>>m; arr[i++]=m; } for (auto c : arr) cout << c; cout << endl; cout<<"Input n = "; cin>>n; sort(arr, n, length); return 0;}
sort函数
void sort(int a[], int n, int length){ int left = 0;int right = length -1; while(a[left] == n) ++left; while(left < right) { if (a[right] != n) { --right; } else { swap(a[left], a[right]); --right; ++left; while(a[left] == n) ++left; } } for (int c =0;c<length;++c) cout << a[c]; cout << endl;}
0 0
- 将数组中等于n的元素移到数组的最前面,尽量减少数组元素的移动次数和额外存储
- 将一个数组的非零元素移动到数组的前面,零元素置于数组的后面
- 将数组中指定数量的元素移动数组后面
- 20100127_1 设一维数组V中存有N个整数,试写一个算法,将其中的非零元素移到数组的前面来,连续存放,相对位置不变。
- [练习题] 将数组中的负数全部移到非负数的前面,要求O(n)时间复杂度
- 有序数组找到出现次数最高的元素和次数
- 数组元素的上下移动
- 如果数组长度n为奇数,则将数组中最大的元素放到 output[] 数组最中间的位置
- 将一个数组中的奇元素全部移到数组的前半部分,即将奇偶元素分开
- 二维数组的元素用一维数组存储
- 数组中重复次数最多的元素
- C# 判断数组元素出现的次数
- 统计`数组`元素出现的次数
- 数组中元素出现的次数
- 数组中重复次数最多的元素
- 完美算法 --将一个具有n个元素的数组向左循环移动i个位置
- 283. Move Zeroes (将数组中值为0的元素移到末尾)
- 将栈S中的元素逆置,使用额外的一个栈L和非数组变量
- JavaScript 对象
- 使用maven 插件site 生成站点
- 关于U盘文件无意损坏之后的解决方案
- Java NIO与IO的主要区别
- 协调多个对象之间的交互——中介者模式
- 将数组中等于n的元素移到数组的最前面,尽量减少数组元素的移动次数和额外存储
- python装饰器详解,from stackoverflow
- RESTful API 设计最佳实践
- chapter 15 使用canvas绘图
- 如何禁止ViewPager滑动,又能点击切换
- oc语言的基本知识
- WebKit、Safari以及SafariViewController
- spring国际化方法(使用SessionLocaleResolver)
- MySql定时器的那点事