1.引言
查找和排序算法是算法的入门知识,其经典思想可以用于比较常见。
1.1 内部排序和外部排序的区别
内部排序:待排序记录存放在计算机随机存储器中(内存)进行排序的过程。
外部排序:待排序记录的数量很大,以至于内存不能一次容纳全部记录,所以在排序过程中需要对外存进行访问的排序过程
1.2 内部排序算法的分类
1.3 内部排序算法复杂度
(一) 冒泡排序
冒泡排序,从下往上遍历,每次遍历往上固定一个最小值
添加一个标志位,当某次冒泡排序没有元素交换时,则冒泡结束,元素已经有序,可以有效减少冒泡次数。
public class BubbleSort{public int [] bubbleSort(int []Arr,int n){//以flag为标记,标记数组是否已经排序完成boolean flag = true;//固定左边的数字for(int i=0;i<n-1&flag;i++){flag = false;//从后面(下面)往前(上)遍历for(int j=n-2;j>=i;j--){if(A[j]>A[j+1]){swap(A,j,j+1);flag = true;}}}return A;}//数组是按引用传递,在函数中改变数组起作用private void swap(int []A,int i,int j){int temp = A[i];A[i] = A[j];A[j] = temp;}}