冒泡排序

xs
xs
2023-06-01 / 0 评论 / 23 阅读 / 正在检测是否收录...

冒泡排序
排序在我们的生活中是很常见的,分数的排名,例如网购的价格排序,文章发表的时间排序,等等。。。这篇文章将来介绍一下冒泡排序。现在,我们举一个例子
假定有一个数组,里面元素的为{89,21,56,48,75},当我们想要给他按照从小到大排序的时候应该怎么办?
冒泡排序可以很好的解决这个问题,他的基本思想是比较两个相邻的数的大小,如果次序错误就将他们交换,将第一个数跟第二个数进比较得到89和21交换,让后我们再将第二个数和第三个数进行交换得到89和56交换一直进行下去直到遍历完整个数组从而将最大数放在最后位置
经过第一轮排序后可以看到我们现在已经将最大的数归位了,这时候我们第二轮就开始将第二大的数进行归位跟上面原理一样
第一个数跟第二个数进行比较,第二个数跟第三个数进行比较,直到遍历完数组,我们进行完五次排序后就会得到{21,48,56,75,89}
接下来看代码

int[] sz = {21,48,56,75,89};
for(int i=sz.legth-1;i>0;i--){
  for(int j=0;j<i;j++){
    if(sz[j]>sz[j+1]){//如果前面一个数的值比后面一个数的值大就进行交换
      sz[j] = sz[j] + sz[j+1];
      sz[j+1] = sz[j] - sz[j+1];
      sz[j] = sz[j] - sz[j+1];
    }
  }
}

总结:假定有n个元素,则一共需要比较n-1遍,每一遍确定一个元素的位置,直到最后一个元素归位,每一遍比较这就相当于一个浮出水面的泡泡,所以叫冒泡排序。

2

评论 (0)

取消