连着三次面试题中都有冒泡排序,自己写算法向来跟着感觉走,一直觉得自己的冒泡对,但有些别扭,今天拿百科对比下,
才恍然,自己的冒泡每次都选出一个最小的,而大家的每次都冒一个最大的,在eclipse里测试下,数据都对,决定还是记
录一下吧
自己老写的冒泡:
int a[]={49, 38, 65, 97, 76, 13, 27, 49};
int len=a.length;
int temp;
for(int i=0;i<=len-1;i++){
for(int j=i+1;j<=len-1;j++){
if(a[i]>a[j]){
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
for(int m=0;m<=len-1;m++){
System.out.print(a[m]+" ");
}
System.out.println();
}
for(int m=0;m<=len-1;m++){
System.out.print(a[m]+" ");
}
}
打印结果:
13 49 65 97 76 38 27 49
13 27 65 97 76 49 38 49
13 27 38 97 76 65 49 49
13 27 38 49 97 76 65 49
13 27 38 49 49 97 76 65
13 27 38 49 49 65 97 76
13 27 38 49 49 65 76 97
13 27 38 49 49 65 76 97
13 27 38 49 49 65 76 97
常用的冒泡(每次选出一个最大的数排在表尾):
int a[]={49, 38, 65, 97, 76, 13, 27, 49};
int len=a.length;
int temp;
for(int i=0;i<=len-1;i++){
for(int j=0;j<len-1-i;j++){
if(a[j]>a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
for(int m=0;m<=len-1;m++){
System.out.print(a[m]+" ");
}
System.out.println();
}
for(int m=0;m<=len-1;m++){
System.out.print(a[m]+" ");
}
}
打印结果:
38 49 65 76 13 27 49 97
38 49 65 13 27 49 76 97
38 49 13 27 49 65 76 97
38 13 27 49 49 65 76 97
13 27 38 49 49 65 76 97
13 27 38 49 49 65 76 97
13 27 38 49 49 65 76 97
13 27 38 49 49 65 76 97
13 27 38 49 49 65 76 97
上次面试出来,心里抱怨:每个公司的题都有侧重点,如果每次笔试题都可以保留电子档案,其他公司看一个人以前的笔试
题,多方便啊·····但又否定了自己的抱怨,应该必然有不好实施的麻烦,不然那么多招聘网为什么不做?
分享到:
相关推荐
冒泡排序法是一种基础但重要的排序算法,常用于面试中测试候选人的编程基础。它的工作原理是通过重复遍历待排序的序列,比较相邻元素并根据需要交换它们的位置,使得每一遍过后的最大(或最小)元素“浮”到序列的...
常见的面试算法包括排序(如冒泡排序、快速排序、归并排序)、查找(如二分查找、哈希查找)、动态规划、贪心算法、回溯法等。面试官可能会要求你在白板上现场编写和解释算法。 4. **操作系统**:操作系统基础知识...
冒泡排序法:是将 一堆数 从前往后 两个两个 逐个扫描,两个数将大的数放到后边,这样扫一遍,就可以在这堆末尾排好一个数(你可以理解为从前往后扫,把大的数从后依次往前排),仔细观察,扫描一次,排好一个数,...
"考试类精品--前端算法面试常考题目解析"这个压缩包文件很可能包含了一系列针对前端工程师的算法练习和解答,帮助准备面试的人熟悉和掌握这些关键技能。在前端算法面试中,通常会考察以下几个核心知识点: 1. **...
自己面试的时候遇到的,回来以后用java写了个完整的!
1. 冒泡排序:冒泡排序是最直观的直接排序法之一,通过不断交换相邻的逆序元素使大元素逐渐“浮”到数组的一端。它的平均和最坏时间复杂度都是O(n²),但在最好情况下(即输入数组已经有序),只需遍历一次,时间...
这份压缩包“考试类精品--总结一下面试常考的算法题”显然为面试者提供了一个宝贵的资源,帮助他们提升自身的编程和算法解决能力。在这个文档中,我们将深入探讨其中可能涵盖的一些关键算法知识点,并给出一些相关的...
**定义与原理**:冒泡排序是一种简单的排序算法,它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。 **Java实现**: ```java public class BubbleSort implements SortUtil....
此外,面试官可能还会询问关于其他排序算法,如冒泡排序、插入排序、选择排序、归并排序等,以及它们的时间复杂度和适用场景。 在准备面试时,除了掌握这些基本算法外,还需要了解数据结构(如链表、树、图)、动态...
经典冒泡排序法,面试不得不看的经典啊 public class BubbleSort { public static void main(String[] args)
8. **排序方法**:常见的排序算法有冒泡排序、插入排序、选择排序、快速排序、归并排序、堆排序等。快速排序示例: ```java void quickSort(int[] arr, int low, int high) { if (low ) { int pivot = partition...
以下是对"面试最常见的问题(java各种排序法)"这一主题的详细解释。 首先,我们来了解一下排序的基本定义:排序是将一组数据按照特定顺序进行排列的过程。在计算机科学中,这通常指的是对数组或列表等数据结构中的...
Java语言提供了丰富的库支持,如Collections.sort()用于排序,而我们还需要理解和掌握基本的算法思想,如分治法、动态规划、贪心算法和回溯法。文件中的学习资料可能包括经典的排序算法(冒泡、插入、选择、快速、...
2. 排序与查找:快速排序、归并排序、堆排序、冒泡排序、插入排序、二分查找、哈希查找等,掌握其原理和应用场景。 3. 动态规划:了解动态规划的基本思想,掌握状态转移方程的建立,解决背包问题、最长公共子序列、...
常见的话题包括排序算法(如冒泡、选择、插入、快速、归并排序),查找算法(如二分查找、哈希查找),数据结构(链表、栈、队列、堆、树、图),以及动态规划、贪心策略、回溯法等。面试者需要能够分析算法的时间...
在IT领域,排序算法是计算机科学中的基础概念,特别是在编程语言如C中。本文将深入探讨C语言中三种常见的排序算法:冒泡排序、快速排序和插值排序...同时,这也是面试中常考的知识点,能够展示编程能力和问题解决能力。
ES6(ECMAScript 2015)的新特性是面试常考内容: - let和const:块级作用域的变量声明。 - 解构赋值:对象和数组的快速赋值方式。 - 箭头函数:更简洁的函数定义。 - Class与继承:面向对象的语法糖。 - ...
冒泡排序是一种简单的排序算法,它重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。此算法的名字由来...
在准备IT行业的面试时,尤其是针对大厂的面试,掌握常用的算法解题技巧至关...上述资料中的多个PDF文件,如“面试常考算法解题技巧-20201011200359551.pdf”等,将是你宝贵的参考资料,可以深入学习和巩固这些知识点。