排序方法总结

插入排序

1、直接插入排序
排序思想:将一个记录插入到已经排好序的有序表中,从而得到一个新的记录增一的有序表

示例:
排序方法总结
c#代码:
排序方法总结
2、希尔插入排序
排序思想:先将原序列分为若干子序列,再对这些子序列进行直接插入排序,待整个序列基本有序时,进行最后一次直接插入排序
排序方法总结
示例:排序方法总结
c#代码:
排序方法总结
排序方法总结

选择排序

1、直接选择排序
排序思想:在待排序列中,找一个最小的与第一个元素交换;之后再从剩下的序列中找到一个最小的与第二个元素交换,依次次递推。直到第n-1个元素和第n个元素比较为止。

排序方法总结
c#代码:
排序方法总结
排序方法总结
2、堆排序(以大根堆为例)
排序思想:构建好大根堆后,输出堆顶元素,再对剩下的n-1个元素重新构建大根堆,其堆顶元素即为序列的次大值;反复操作,即得到一个有序序列

示例:
排序方法总结
c#代码:
排序方法总结
排序方法总结
交换排序:
1、冒泡排序:
排序思想:通过相邻记录间的比较和交换,使关键字较小的记录像气泡 一样逐渐冒出水面(找到未排子序列里的最小值,与直接选择排序不同的是,我们这里是通过交换其下标,直接选择排序是通过循环找到其中的最小值 )

示例:
排序方法总结
c#代码:
排序方法总结
2、快速排序法:
快速排序法思想:
排序方法总结
这是一篇很好的链接