排序算法归总

交换类排序

1.冒泡排序(n*n)

第一轮交换的区间 0~N-1,最大数放到第N-1位置
.1第一个数与第二数比较,谁大放后面,
.2.然后第二个数与第三个数比较,谁大放后面
.3.依次交换,最大的数放到数组最后面
第二轮交换区间0~N-2,最大数放大第N-2位置

最后一轮 确定第1位和第2位值

选择类排序

1.直接选择排序(n*n)

第一轮选择区间0~N-1,选择出最小的值,放到位置0
第二轮选择区间1~N-1, 选择出最小的值,放到位置1

最后一轮区间N-2~N-1,最小的数(数组中最大的)放到位置N-1

归并类排序

1.归并排序(n*logN)

第一步,让数组中每一个数独立成为一个区间
第二步,相邻长度为一的区间进行合并,形成长度为2的有序序列

最后一步,将相邻长度n/2 的两个区间进行合并,形成长度为n的有序序列。

插入类排序

1.直接插入类排序(n*n)

第一次插入区间0~0,如果比0位置上元素小,放入到0位置。
第二次插入区间0-1,从1~0开始比较,直到找出小于位置2元素所在位置,插入到其后面.

最后一次插入区间0-N-2,从N-2~-0开始比较,直到找出小于位置N-1元素所在位置,插入到其后面。

猜你喜欢

转载自blog.csdn.net/jcsyl_mshot/article/details/80048825