首先来看牛客网的一道笔试题
问这段代码是 选择排序还是插入排序。怎么判断呢,这里先给出结论。
数据交换swap发生在while,for 等循环里面的是 『插入排序』,在循环外的,是『选择排序』。
为什么会有这个结论呢?我们把插入排序和选择排序代码全写出来对比,一看就知道了。
#include<stdio.h>
int swap(int *a,int *b)
{
int t=*a;
*a=*b;
*b=t;
}
/*
选择排序的原理:每次在无序队列中“选择”出最小值,放到有序队列的最后,并从无序队列
中去除该值(具体实现略有区别)。
选择排序的代码如下:
*/
void selection_sort(int a[],int n){
int i,j;
int