最近太困太累,昨天宣讲会上打盹打得啊,最后笔试稀里糊涂地写了。回来后想起自己写的,太次了。冒泡排序也能写错,生产者和消费者也挂了。这里就补上冒泡,生生产者消费者另外一篇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();
}
}
分享到:
相关推荐
常用算法笔试题软件工程师 在软件开发中,算法笔试题是一个非常重要的部分。今天,我们将讨论一些常用的算法笔试题,包括选择排序、直接插入排序和冒泡排序...这些算法都是非常重要的基础知识,对软件开发非常有帮助。
这篇笔试题涵盖了多个IT领域的知识点,包括算法、API测试、HTML、简单程序设计、数据库查询以及浏览器的工作原理。下面是对这些知识点的详细说明: 1. **算法**:这里提到的算法问题是找出两个字符串的最长公共子串...
根据给定文件的信息,我们可以提炼出七个Java编程相关的知识点,这些知识点主要集中在常见的算法和数据处理上,非常适合准备笔试和面试的候选人。 ### 知识点1:斐波那契数列 #### 核心概念 斐波那契数列...
### 数据结构与算法基础知识解析 #### 一、算法的基本概念 **1.1 算法的基本特征** - **可行性**:算法中的每一步都必须是可行的,即能够被执行。 - **确定性**:算法的每一步指令必须是明确无误的,不能有多义性...
在各类IT公司的笔试和面试中,数据结构和算法的考察往往是重点,因为它们能有效评估一个程序员的基础知识和问题解决能力。这份压缩包文件包含了针对Java、C++、C#等编程语言的面试题目,以及专门的数据结构和算法...
这些题目涵盖了多个基础的算法和数据结构概念,是IT公司笔试中常见的问题。下面是对每个题目涉及知识点的详细解释: 1. **整数逆序**: 这个问题是关于数组和递归的。给定一个整数n,将其逆序存储到数组中。这个...
这篇文档是关于2014年华为校园招聘的笔试题,主要涉及了算法相关的题目,旨在测试...在准备这类题目时,考生需要熟练掌握C++或其他编程语言的基础知识,同时具备扎实的算法基础,例如字符串处理、动态规划、递归等。
《小米2018春季实习生前端开发、算法工程师笔试题合集》是针对有志于在小米公司实习的开发者们的一份重要参考资料。这份合集主要涵盖了Java编程语言以及前端开发与算法设计的相关知识,旨在考察和提升实习生的技术...
金山软件,作为国内知名的软件开发与服务提供商,其笔试环节通常会涉及计算机基础知识、编程能力、算法理解、逻辑分析等多个方面,旨在全面考察应聘者的综合素质和技术实力。 在准备金山笔试时,以下是一些关键的...
以上代码展示了排序算法的Java实现,这些基础排序算法对于理解数据结构和算法原理至关重要。在面试或笔试中,能够熟练掌握并灵活运用这些算法,将有助于提升你的技术能力,并在竞争激烈的IT行业中脱颖而出。
笔试面试中的算法题主要考察应聘者的基础算法知识、数据结构理解以及解决问题的能力。 1. **基础算法和数据结构**: - 排序算法:如冒泡排序、选择排序、插入排序、快速排序、归并排序等。 - 搜索算法:如线性...
算法基础是笔试中的核心部分,常见的算法题型有动态规划、贪心算法、回溯法、分治法等。考生需要熟悉这些算法的思想,能快速理解和应用,同时,优化代码性能,以提高解题效率。 数据结构的考察也不可忽视,链表、栈...
【描述】虽然描述简单,但可以推测这份笔试题可能包括了Java语言的基础语法、类与对象、异常处理、集合框架、多线程、I/O流、网络编程、设计模式等多个方面。同时,也可能涉及一些Java高级特性,如反射、注解、枚举...
在笔试中,可能会有编写简单程序、修复bug或优化代码的题目,旨在考察求职者的实际动手能力和逻辑思维。 其次,算法和数据结构是笔试中的重头戏。链表、栈、队列、数组、树(如二叉树、平衡树)、图等经典数据结构...
总结起来,Java数据结构和算法是编程基础中的基础,掌握它们不仅能提升笔试成绩,更能为日后的软件开发工作打下坚实的基础。通过这份笔试集锦,我们可以有针对性地学习和巩固这些关键知识点,从而提升自己的编程技能...
这些IT公司的算法笔试题目涵盖了多个基础的算法概念,包括数据逆序、计算平均值、回文判断、组合问题、质因数分解以及迷宫寻路。以下是对这些知识点的详细解释: 1. **数据逆序**: 这个题目要求将一个整数逆序...
排序算法是计算机科学中的基础算法之一,用于将一组数据按照一定的顺序排列。根据不同的特性,排序算法被广泛应用于各种实际场景中。 - **冒泡排序**:这是一种简单的排序算法,通过重复地遍历列表,比较相邻元素,...
这些题目覆盖了递归、数组操作、字符串处理、基本算法(如搜索和组合)、数学运算(质因数分解)等基础编程和算法知识,是IT公司笔试中常见的题型,旨在考察应聘者的逻辑思维能力和编程基础。通过解决这些问题,可以...
Java排序算法是编程面试和笔试中常见的考察点,掌握这些算法对于提升编程能力和解决实际问题至关重要。本篇文章将深入探讨几种主要的Java排序算法及其特点。 1. **插入排序** - **直接插入排序**:将每个元素依次...