chapter 1 排序算法
(1) 简易桶排序 (2) 冒泡排序 (3) 快速排序
(1) 若排序长度为N 申请大小为N的数组 数组每一项比喻成一个桶,各项初始为0 循环待排序的数 将数对应的数组下标计数 循环完毕后 循环输出非空的数组 即为最后的排序所得 时间复杂度为O(M+N) MN分别为数据范围和数据个数
(2) 每次比较两个相邻的元素,如果他们的顺序错误就把他们交换过来 时间复杂度为O(N*N)
(3) 与冒泡排序不同的是 冒泡排序每趟确认最后一位的数值 而快速排序每次确认的是基准值的位置 以第一个数为基准值 左右分别留下指针i j 先j从右向左找小于基准的数 再i从左向右找大于基准的数 都找到后交换 若在这之前ij相遇 那么将基准值与相遇处交换 基准值位置确定后 在循环递归基准值的左边和右边 最坏时间复杂度的O(N*N) 平均时间复杂度为O(N*logN)