冒泡排序
2021-04-26 01:26
标签:print 最大 swa static 快速排序 最大的 str 而且 很多 最近在面试,发现基本上上点规模的公司都喜欢问算法的问题,但是在我实际的工作中使用这些算法的地方非常少,感觉就偶尔用一下递归,而且递归也不是什么算法,其他的很多算法很少使用,但是既然人家问了,那也没办法,说不定是因为人家的公司确实高大上,工作中很多的场景可以使用这些算法,本文介绍冒泡排序,一种很简单的排序算法,下一篇会介绍快速排序 什么是冒泡,就是在水中一个气泡,一点一点的上升到水面,那这个算法其实也是这样做的,就是比较相邻的元素,从头比较到尾,那就可以找到一个最大或者最小的元素,然后再从头找,找到次大或者次小的,以此类推。 举例如下: 3,5,4,2 要求:使用冒泡排序从小到大排序 第一轮: 比较3和5,5>3,不用交换,结果为:3,5,4,2 比较5和4,发现4
比较2和5,发现2
经过第一轮的排序,大家可以发现,最大的元素5已经跑到他应该呆的位置了 第二轮: 比较3和4,4>3,不用交换,结果为:3,4,2,5 比较4和2,2
经过第二轮,发现4已经跑到他应该呆的位置了 第三轮: 比价3和2,发现2
总结:经过上面的过程,大家应该清楚什么是冒泡排序了,思想很简单,就是交换相邻的元素,一直遍历,时间复杂度为O(n2),时间复杂度太高,除了名字好听之外,基本没啥用 本文使用java实现,如果你熟悉C或者python,也可以凑合看,语法差不太多 冒泡排序 标签:print 最大 swa static 快速排序 最大的 str 而且 很多 原文地址:https://www.cnblogs.com/gunduzi/p/13255000.html概述
核心思想
代码实现
/**
* @author: steve
* @date: 2020/7/6 13:58
* @description: 冒泡排序
*/
public class BubbleSort {
public static int array[] = {72,6,57,88,60,42,83,73,48,8};
public static void bubbleSort(){
for (int i = 0; i ) {
for (int j = 0; j ) {
if (array[j] > array[j+1]){
swap(j,j+1);
}
}
}
for (int i = 0; i ) {
System.out.println(array[i]);
}
}
public static void swap(int i, int j){
int temp = 0;
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
public static void main(String[] args) {
bubbleSort();
}
}