数据结构中常见的排序方式都有哪些?比如冒泡排序,快速排序等。每种排序具体是怎么排的?

我找到了这几种,谁可以说下具体是如何排序的。
1、插入排序(直接插入排序和希尔排序)
2、选择排序(直接选择排序和堆排序)
3、交换排序(冒泡排序和快速排序)
4、归并排序
5、基数排序

1.直接插入:就是有一个已经排好的子序列,它是有序的。然后来一个插入一个仍是这个序列有序。比如a1本身就是有序的。a2来了,要和a1比较,a2大就插在a1之后,小就在a1之前,那么a1、a2就是新的有序子序列,然后a3来了,又要插入进来,逐个与a2、a1比较插在它的适当位置再次形成子序列,就按这样一步步进行,知道最后一个插入时,以前的都已经有序了。
2.希尔排序:由于有时候数据量大,用直接插入就不太合适。于是把你的一组待排序数据按如8、4、2、1的一组增量数来分组,即第一次,a1和a9和a17甚至还有更多间隔为八的数分为一组进行直接插入排序,第二次则是新的a1和a5、a9、a13……依次知道最后比较数据之间的间隔数为1,每次都进行插入排序
3.直接选择:n个数逐个比较,谁大的谁放最后(n的位置),比较范围减一;然后又从n-1个数中找最大的,又放最后(n-1的位置),依次这样进行就可以。
4.冒泡:比较的时候如果前者比后者大就要进行值的交换。那么最大的每次都会沉到底下。比较范围减一。
5、快速排序:要采用分划控制。比较复杂。
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答