欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java中的排序----快速排序

程序员文章站 2022-03-16 19:04:29
...

java中的排序----快速排序的思想:每一个数与后面的n个数进行比较。存在两个for循环

第一个:遍历数组中的每一个数(除了最后一个数)

第二个:遍历第一个循环遍历到的数后面的所有的元素。

eg:手机排序

public void selectSort1(int a[]) {
		for (int i = 0; i < a.length - 1; i++) {
			for (int j = i + 1; j < a.length; j++) {
				if (a[i] > a[j]) {
					swap(a, i, j);
				}
			}
		}
		print(a);

	}

对于快速排序的优化:即在进行第二个是若每一次if的判断都是有效的(都会交换一次)那么将会大大的降低程序的速率,因此优化快速排序即备份需要比较的数,保留下标,最后只用进行一次交换就可以。

public void selectSort2(int a[]) {
		for (int i = 0; i < a.length - 1; i++) {
			int k = i;
			for (int j = i + 1; j < a.length; j++) {
				if (a[k] > a[j]) {
					k = j;
				}
			}
			if (i != k)//可以判断也可以不用判断
				swap(a, i, k);
		}
		print(a);

	}


相关标签: 排序