`
xiaomijsj
  • 浏览: 20071 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

数组的模3特性

 
阅读更多

这是我去腾讯面试实习生时被问到的一道题:如何把一个数组中模3等于0的数放在数组的前面,其余的放在后面。

算法是一开始就想到了,但是细节没有想好,所以当时写的时候程序的结构比较混乱,没有写出应有的水平。现在来对该题进行了实现,算法的思路还是很清晰的,代码如下:

 

/**
 * 数组模3特性
 * @author xiaomi
 * 2012.4.26
 */
public class Modulo3 {

	public static void main(String[] args) {
		int[] a = {1,3,5,7,6,9,10};
		mod3(a);
		for(int i = 0 ;i< a.length;i++){
			System.out.print(a[i]+" ");
		}
	}
	
	public static void mod3(int[] a){
		int begin,end;
		begin = 0;
		end = a.length-1;
		while(begin < end){
			while(begin < end && a[begin]%3 == 0){
				begin++;
			}
			while(begin < end && a[end]%3 != 0){
				end--;
			}
			if(begin < end){//小优化,考虑到最后begin>=end时就不交换了
				int temp = a[begin];
				a[begin] = a[end];
				a[end] = temp;
			}
		}
	}
}
分享到:
评论

相关推荐

    一组新的多维数组模板类

    现在静态数组的最大维数做到了3,动态数组的维数不限//你需要多高维数的?维数越高越 慢, :) 由于时间不多,精力和水平有限,其中的缺点和错误欢迎指正,也十分欢迎哪位能帮我进一 步提高访问速度. 谢谢! ...

    C++类模板实现数组的排序以及增删查

    本段代码以int类型为例实现功能,但类模板的特性使得数据类型可以依据需求而改变,因此用户可以在充分学习的基础上,举一反三,增加代码的可重用性。 本代码适用于初学面向对象编程,学习C++中类或类模板的学习者。...

    c++利用vector创建二维数组的几种方法总结

    本教程适合所有准备学习C++中vector创建二维数组的初学者,特别是那些对C++基础有所了解,但需要系统学习vector的高级特性以应对实际编程问题的开发者。 **使用场景及目标:** 这些教程适用于初学者在学习和实践阶段...

    vector创建数组(一维、二维)的超详细总结

    本教程适合所有准备学习vector创建数组的初学者,特别是那些对C++基础有所了解,但需要系统学习vector的高级特性以应对实际编程问题的开发者。 **使用场景及目标:** 这些教程适用于初学者在学习和实践阶段,帮助...

    详解PHP对数组的定义以及数组的创建方法

    传统上把数组(array)定义为一组有某种共同特性的元素,这里的共同特性包括相似性(车模、棒球队、水果类型等)和类型(例如所有元素都是字符串或整数)等,每个元素由一个特殊的标识符来区分,这称为健(key)。...

    清华版labview教程

    提纲 第一章 虚拟仪器及LabVIEW...9.9 元件伏安特性的自动测试 9.10  扫频仪 9.11  函数发生器 9.12 实验数据处理 9.13 频域分析 9.14 时域分析 第十章 网络与通讯 第十一章 仪器控制

    ES6的新特性??_ES6是什么+30分钟带你了解ES6核心内容(上)

    新特性1.const 与 let 变量let与const规则和var的区别2.模版字变量3.解构赋值定义:解构模型数组模型的解构(Array)对象模型的解构(Object)4 对象字面量简写法5.迭代器Iterator迭代过程可迭代的值:for…of循环可...

    PHP100视频教程 29:PHP模板引擎Smarty内置函数

    2、include 多功能使用3、IF条件语句的使用4、literal strip 文本的处理技巧 literal 数据将被当作文本处理,此时模板将忽略其内部的所有字符信息. 该特性用于显示有可能包含大括号等字符信息的 javascript 脚本 ...

    C++初学者指南(原版)

    第 3 章:程序控制语句 此模块讨论用于控制程序执行流的语句。有三种类别的程序控制语句:选择语句,包括 if 和 switch 语句;迭代语句,包括 for、while 和 do-while 循环;以及跳转语句,包括 break、continue、...

    PHP100视频教程 29:PHP模板引擎Smarty内置函数.rar

    3、IF条件语句的使用 4、literal strip 文本的处理技巧  literal 数据将被当作文本处理,此时模板将忽略其内部的所有字符信息. 该特性用 于显示有可能包含大括号等字符信息的 javascript 脚本  strip标记中...

    JavaScript完全自学宝典 源代码

    示例描述:介绍JavaScript的面向对象特性。 4.1.html 对象的创建。 4.2.html 作为关联数组的对象与数组对象实现方式比较。 4.3.html prototype的用法。 4.4.html prototype实现继承机制。 4.5....

    C++学习笔记、常见面试知识点.zip

    C++学习笔记和常见面试知识点,C++11特性,包括多态、虚表、移动语义、友元函数、符号重载、完美转发、智能指针、const和static、数组指针和指针数组、struct内存对齐、enum和union关键字等等。帮助了解C++的特性,...

    全栈工程师开发8个阶段(27.32G)

    3.高级特性视频 ---第八章 ---第二章 ---第六章 ---第七章 ---第三章 ---第四章 ---第五章 ---第一章 4.mysql+JDBC ---jdbc ---mysql 5.jQuery制作网页特效 ---1.javaScript基础 ---2.javaScript操作BOM ---3....

    老男孩第三期Python全栈开发视频教程 零基础系统学习Python开发视频+资料

    ├─(8) 08 python s3 day41 JS的数组对象.avi ├─(9) 09 python s3 day41 JS的函数对象.avi ├─(10) day41.rar (6)\\python全栈day41-50\\python全栈s3 day42;目录中文件数:6个 ├─(11) 01 python s3 day42 JS...

    3.C++程序设计语言.第1~3部分.原书第4版 中文版有详细书签2016

    第3章 C++概览:抽象机制 51 第4章 C++概览:容器与算法 74 第5章 C++概览:并发与实用功能 96 第二部分 基本功能 第6章 类型与声明 116 第7章 指针、数组与引用 148 第8章 结构、联合与枚举 173 第9章 语句...

    史上最全韩顺平传智播客PHP就业班视频,10月份全集

    数组使用细节② 数组运算符 数组作业评讲① 数组小结 8-24 1.回顾 8-24 2.选择排序 插入排序 快速排序 8-24 3.选择排序 插入排序 快速排序 8-24 4.顺序查找 二分查找 8-24 5.多维数组 数组作业评讲② 8-24 6.数组...

    使用Pytorch搭建模型的步骤

    本来是只用Tenorflow的,但是因为TF有些Numpy特性并不支持,比如对数组使用列表进行切片,所以只能转战Pytorch了(pytorch是支持的)。还好Pytorch比较容易上手,几乎完美复制了Numpy的特性(但还有一些特性不支持)...

    (全)传智播客PHP就业班视频完整课程

    数组使用细节② 数组运算符 数组作业评讲① 数组小结 8-24 1.回顾 8-24 2.选择排序 插入排序 快速排序 8-24 3.选择排序 插入排序 快速排序 8-24 4.顺序查找 二分查找 8-24 5.多维数组 数组作业评讲② 8-24 6.数组...

Global site tag (gtag.js) - Google Analytics