`
braveCS
  • 浏览: 73758 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

笔试简单基础算法

阅读更多
最近太困太累,昨天宣讲会上打盹打得啊,最后笔试稀里糊涂地写了。回来后想起自己写的,太次了。冒泡排序也能写错,生产者和消费者也挂了。这里就补上冒泡,生生产者消费者另外一篇http://bravecs.iteye.com/blog/1720415 。提醒自己做事不能随便,不能差不多,不能浮躁
import java.util.Scanner;

class Sort
{
	private int[] a;
	private int len;
	private int count;
	//从console中输入
	public void input()
	{
		Scanner scanner=new Scanner(System.in);
		String str=scanner.nextLine();
		String[] temp=str.split(",");
		len=temp.length;
		a=new int[len];
		for(int i=0;i<len;i++)
			a[i]=Integer.parseInt(temp[i]);
	}
	//显示
	public void show()
	{
		for(int i=0;i<len;i++)
			System.out.print(a[i]+",");
		System.out.println("\n比较次数:"+count);
	}
	
	//冒泡排序
	public void sort()
	{
		boolean flag=false;
		count=0;
		int temp;
		for(int i=0;!flag&&i<len-1;i++)
		{
			flag=true;
			for(int j=0;j<len-i-1;j++)
			{
				if(a[j]<a[j+1])
				{
					temp=a[j];
					a[j]=a[j+1];
					a[j+1]=temp;
					flag=false;
					count++;
				}
			}
		}
	}
	
	/**
	 * 二分法dichotomy查找  非递归recursion
	 * 前提:已排好序
	 */
	public int dichotomy(int target)
	{
		int start=0,end=a.length-1,middle;
		while(start<end)
		{
			middle=(start+end)/2;
			if(a[middle]==target)
				return middle;
			else if(a[middle]<target)
				end=middle-1;
			else
				start=middle+1;	
		}
		return start==end&&a[start]==target?start:-1;
	}
	
	/**
	 * 二分法dichotomy查找 递归 recursion
	 * 前提:已排好序
	 */
	public int dichotomy(int target,int start,int end)
	{
		if(start>end)
			return -1;
		if(start==end)
			return a[start]==a[end]?start:-1;
		int middle=(start+end)/2;
		if(a[middle]==target)
			return middle;
		if(a[middle]<target)
			return dichotomy(target,start,middle-1);
		else
			return dichotomy(target,middle+1,end);		
	}	
}

public class Cs 
{
	public static void main(String[] args)
	{	
		Sort cs=new Sort();
		cs.input();
		cs.sort();
		cs.show();
	}	
}
分享到:
评论

相关推荐

    常用算法笔试题软件工程师

    常用算法笔试题软件工程师 在软件开发中,算法笔试题是一个非常重要的部分。今天,我们将讨论一些常用的算法笔试题,包括选择排序、直接插入排序和冒泡排序...这些算法都是非常重要的基础知识,对软件开发非常有帮助。

    笔试题 - 算法,API,HTML,简单程序设计

    这篇笔试题涵盖了多个IT领域的知识点,包括算法、API测试、HTML、简单程序设计、数据库查询以及浏览器的工作原理。下面是对这些知识点的详细说明: 1. **算法**:这里提到的算法问题是找出两个字符串的最长公共子串...

    50个java笔试和面试常用的算法小程序

    根据给定文件的信息,我们可以提炼出七个Java编程相关的知识点,这些知识点主要集中在常见的算法和数据处理上,非常适合准备笔试和面试的候选人。 ### 知识点1:斐波那契数列 #### 核心概念 斐波那契数列...

    数据结构与算法笔试题基础.doc

    ### 数据结构与算法基础知识解析 #### 一、算法的基本概念 **1.1 算法的基本特征** - **可行性**:算法中的每一步都必须是可行的,即能够被执行。 - **确定性**:算法的每一步指令必须是明确无误的,不能有多义性...

    各类IT公司笔试面试题(数据结构算法)收集,很全很实用

    在各类IT公司的笔试和面试中,数据结构和算法的考察往往是重点,因为它们能有效评估一个程序员的基础知识和问题解决能力。这份压缩包文件包含了针对Java、C++、C#等编程语言的面试题目,以及专门的数据结构和算法...

    部分IT公司笔试题算法部分

    这些题目涵盖了多个基础的算法和数据结构概念,是IT公司笔试中常见的问题。下面是对每个题目涉及知识点的详细解释: 1. **整数逆序**: 这个问题是关于数组和递归的。给定一个整数n,将其逆序存储到数组中。这个...

    2014华为校园招聘笔试算法题汇总.docx

    这篇文档是关于2014年华为校园招聘的笔试题,主要涉及了算法相关的题目,旨在测试...在准备这类题目时,考生需要熟练掌握C++或其他编程语言的基础知识,同时具备扎实的算法基础,例如字符串处理、动态规划、递归等。

    小米 2018春季实习生前端开发、算法工程师笔试题合集

    《小米2018春季实习生前端开发、算法工程师笔试题合集》是针对有志于在小米公司实习的开发者们的一份重要参考资料。这份合集主要涵盖了Java编程语言以及前端开发与算法设计的相关知识,旨在考察和提升实习生的技术...

    金山笔试金山笔试题目很准确。金山笔试题。

    金山软件,作为国内知名的软件开发与服务提供商,其笔试环节通常会涉及计算机基础知识、编程能力、算法理解、逻辑分析等多个方面,旨在全面考察应聘者的综合素质和技术实力。 在准备金山笔试时,以下是一些关键的...

    IT面试笔试-各种排序算法Java实现

    以上代码展示了排序算法的Java实现,这些基础排序算法对于理解数据结构和算法原理至关重要。在面试或笔试中,能够熟练掌握并灵活运用这些算法,将有助于提升你的技术能力,并在竞争激烈的IT行业中脱颖而出。

    常见算法介绍,算法刷题(含解析与代码),笔试面试算法题

    笔试面试中的算法题主要考察应聘者的基础算法知识、数据结构理解以及解决问题的能力。 1. **基础算法和数据结构**: - 排序算法:如冒泡排序、选择排序、插入排序、快速排序、归并排序等。 - 搜索算法:如线性...

    互联网笔试题集锦

    算法基础是笔试中的核心部分,常见的算法题型有动态规划、贪心算法、回溯法、分治法等。考生需要熟悉这些算法的思想,能快速理解和应用,同时,优化代码性能,以提高解题效率。 数据结构的考察也不可忽视,链表、栈...

    北京四达时代通讯网络技术有限公司Java笔试题

    【描述】虽然描述简单,但可以推测这份笔试题可能包括了Java语言的基础语法、类与对象、异常处理、集合框架、多线程、I/O流、网络编程、设计模式等多个方面。同时,也可能涉及一些Java高级特性,如反射、注解、枚举...

    2015校园招聘笔试题大合集

    在笔试中,可能会有编写简单程序、修复bug或优化代码的题目,旨在考察求职者的实际动手能力和逻辑思维。 其次,算法和数据结构是笔试中的重头戏。链表、栈、队列、数组、树(如二叉树、平衡树)、图等经典数据结构...

    Java数据结构和算法笔试集锦

    总结起来,Java数据结构和算法是编程基础中的基础,掌握它们不仅能提升笔试成绩,更能为日后的软件开发工作打下坚实的基础。通过这份笔试集锦,我们可以有针对性地学习和巩固这些关键知识点,从而提升自己的编程技能...

    IT公司常见算法笔试题

    这些IT公司的算法笔试题目涵盖了多个基础的算法概念,包括数据逆序、计算平均值、回文判断、组合问题、质因数分解以及迷宫寻路。以下是对这些知识点的详细解释: 1. **数据逆序**: 这个题目要求将一个整数逆序...

    常见算法介绍、算法刷题(含解析与代码)、笔试面试算法题文档.docx

    排序算法是计算机科学中的基础算法之一,用于将一组数据按照一定的顺序排列。根据不同的特性,排序算法被广泛应用于各种实际场景中。 - **冒泡排序**:这是一种简单的排序算法,通过重复地遍历列表,比较相邻元素,...

    IT公司笔试算法26题

    这些题目覆盖了递归、数组操作、字符串处理、基本算法(如搜索和组合)、数学运算(质因数分解)等基础编程和算法知识,是IT公司笔试中常见的题型,旨在考察应聘者的逻辑思维能力和编程基础。通过解决这些问题,可以...

    面试笔试必用-必须掌握的Java排序算法

    Java排序算法是编程面试和笔试中常见的考察点,掌握这些算法对于提升编程能力和解决实际问题至关重要。本篇文章将深入探讨几种主要的Java排序算法及其特点。 1. **插入排序** - **直接插入排序**:将每个元素依次...

Global site tag (gtag.js) - Google Analytics