实验三 完成下列排序
1、冒泡排序:有一组数据7,4,9,1,10,6,5,3,2,8。完成冒泡排序。
基本思想:比较相邻的两个数,如果前者比后者大,则进行交换。每一轮排序结束,选出一个未排序中最大的数放到数组后面。
2、快速排序:有一组数据7,4,9,1,10,6,5,2,3,8。完成快速排序。
基本思想:选取一个基准元素,通常为数组最后一个元素(或者第一个元素)。从前向后遍历数组,当遇到小于基准元素的元素时,把它和左边第一个大于基准元素的元素进行交换。在利用分治策略从已经分好的两组中分别进行以上步骤,直到排序完成。下图表示了这个过程。
3、直接插入排序:有一组数据21,17,19,22,10, 43,51,1,32,18,4完成直接插入排序。
基本思想:和交换排序不同的是它不用进行交换操作,而是用一个临时变量存储当前值。当前面的元素比后面大时,先把后面的元素存入临时变量,前面元素的值放到后面元素位置,再到最后把其值插入到合适的数组位置。
4、希尔(shell)排序:有一组数据21,17,19,22,10, 43,51,1,32,18,4完成希尔(shell)排序。
基本思想为在直接插入排序的思想下设置一个最小增量dk,刚开始dk设置为n/2。进行插入排序,随后再让dk=dk/2,再进行插入排序,直到dk为1时完成最后一次插入排序,
此时数组完成排序。时数组完成排序。
5、直接选择排序:有一组数据21,17,19,22,10, 43,51,1,32,18,4完成直接选择排序。
基本思想:依次选出数组最小的数放到数组的前面。首先从数组的第二个元素开始往后遍历,找出最小的数放到第一个位置。再从剩下数组中找出最小的数放到第二个位置。以此类推,直到数组有序。