啊哈!算法随笔

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)

猜你喜欢

转载自www.cnblogs.com/mengmengya/p/9657369.html
今日推荐