排序是编程中非常重要的一个需求与功能,经常需要用到排序,在现实中又有太多排序的例子,像电话簿联系人,很多体育比赛,包括各种选举都是通过排序来决定名次与结果的。所以排序问题也是c语言中的一个非常经典的问题,接下来,我将用这篇和下一篇博客来分析一下用c语言实现的排序的几种方法以及它们的特点及各自的改进。(接下来都是以从小到大排序为例介绍一下这几种排序方法),通常情况下用数组来处理排序问题。
先说一下非常经典的一种方法,选择排序法吧,选择排序是c语言中常用的一种排序算法,它的基本思想是,:每步从待排序的记录中选出剩下的元素中最小的元素,把其与当前还没有完成排序的数列中的第一个数进行交换,这样每在第i轮排序完成后,就可以保证前i个元素是这一组元素中的最小的i个数,且从小到大排列。它的代码如下。
#include <stdio.h>
void selectsort(int a[],unsigned int n)
{
int i=0,j=0,temp=0,min=0;// 接下来嵌套的for循环将完成选择排序的主要工作
for (i=0;i<n;i++)
{min