C语言中的 常用排序

功能: 选择排序
输入: 数组名称(也就是数组首地址), 数组中元素个数
算法思想简单描述: 在要排序的一组数中,选出最小的一个数与第一个位置的数交换;然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止.

功能: 直接插入排序
输入: 数组名称(也就是数组首地址), 数组中元素个数
算法思想简单描述: 在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的.如此反复循环,直到全部排好顺序.

功能: 冒泡排序
输入: 数组名称(也就是数组首地址), 数组中元素个数
算法思想简单描述: 在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒.即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换.

功能: 希尔排序
输入: 数组名称(也就是数组首地址), 数组中元素个数
算法思想简单描述: 先将要排序的一组数按某个增量d分成若干组,每组中记录的下标相差d.对每组中全部元素进行排序,然后再用一个较小的增量对它进行,在每组中再进行排序.当增量减到1时,整个要排序的数被分成一组,排序完成.

还有 堆排序 和 快速排序.

没有评论:

发表评论