background image

Java 基础复习笔记 11 基本排序算法

1. 排序

排序是一个历来都是很多算法家热衷的领域,到现在还有很多数学家兼计算机专家
还在研究。而排序是计算机程序开发中常用的一种操作。为何需要排序呢。我们在所有
的系统中几乎都要检索数据,而这些欲检索的数据如果有规律的话,比如按照某些
字段、属性降序排序的话,那么从这些有规律的数据查询结果或者结果集的话就快速
得多。

2. 常用算法

常用的算法有:直接选择排序、堆排序、冒泡排序、快速交换排序、直接插入排序、折半
插入排序、Shell 排序、归并排序、桶式排序、基数排序。这些都属于常用排序算法,也
都是内部排序算法。所谓内部排序就是不借助任何外部的内存处理器,直接使用内存,
在内存中完成就可以的排序方式。

3. 直接选择排序

直接排序的思想就是进行二重遍历,由外层元素依次和内层元素进行对比,之后交
换位置。算法如下

package

 sort;

import

 java.util.Arrays;

/**
 * 选择排序
 * 
 * 

@author

 liuyan

 */

public

 

class

 SelectSort {

// 选择排序法

public

 

static

 

void

 selectSort(Integer[] integers) {

for

 (

int

 i = 0; i < integers.

length

 - 1; i++) {

int

 minIndex = i;

for

 (

int

 j = i + 1; j < integers.

length

; j++) {

if

 (integers[i] < integers[j]

&& integers[minIndex] < integers[j]) {

// 只记住标记

minIndex = j;

}

}

// 每次只交换一次即可

if

 (minIndex != i) {

Integer temp = integers[i];
integers[i] = integers[minIndex];

 

1

 / 

11