比较Java中冒泡排序和快速排序的效率:
一、冒泡排序:
它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。
二、快速排序:
是对冒泡排序的一种改进。通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
三、冒泡排序与快速排序的区别:
冒泡排序是从最底层元素开始比较,(与其上的元素比较)小于就往上再比,大于就交换,再用较小的往上比较,直到最高层,第一次把最小的放到最上层,第二次把第二小的放到第二层,以次类推;快速排序是先找到一个轴值,比较时把所有比轴值小的放到轴值的左边,比轴值大的放到右边,再在两边各自选取轴值再按前面排序,直到完成。
四、效率比较
package project4;
import java.util.ArrayList;
import java.util.List;
public class Bijiao {
@SuppressWarnings("unused")
public static void main(String[] args) {
// 创建集合添加数
List<Integer> list = new ArrayList<Integer>();
Integer a = 40;
for (int i = 0; i < 10000; i++) {
list.add(a);
a++;