分类: C/C++
2011-05-31 10:41:31
/*
* 简单排序实现
* Lzy 2011-5-25
*/
#include
#define N 8
void Insert_Srot(int X[], int n) /*插入排序(升序)*/
{
int temp;
int i,j;
for(i = 1; i < n; i++)
{
temp = X[i]; /*取出无序序列中的一个数据元素*/
for(j = i; temp < X[j-1] && j >=0; j--) /*在已排序的序列中从后向前扫描*/
X[j] = X[j-1]; /*插入位置后的数据元素后移*/
X[j] = temp; /*数据插入有序序列中*/
}
}
void Bubble_Srot(int X[], int n) /*冒泡排序(升序)*/
{
int i,j;
int temp;
for(i = n; i > 1; i--) /*进行n-1趟排序*/
{
for(j = 0; j < i-1; j++) /*每趟排序进行i-1次数据判断*/
{
if(X[j] > X[j+1]) /*比较相邻两个数据元素*/
{
temp = X[j]; /*交换数据元素*/
X[j] = X[j+1];
X[j+1] = temp;
}
}
}
}
void Select_Srot(int X[], int n) /*选择排序*/
{
int i, j, k;
int temp;
for(i = 0; i < n-1; i++) /*进行n-1趟排序,每趟选出1个最小记录*/
{
k = i;
for(j = i +1; j < n; j++) /*在其它数据元素中继续查找最小数据*/
{
if(X[k] > X[j]) /*记录最小数据元素的位置*/
k = j;
}
if(k != i) /*数据交换*/
{
temp = X[k];
X[k] = X[i];
X[i] = temp;
}
}
}
/******测试程序*******/
int main(void)
{
int i;
int X[N] = {26,23,96,13,36,67,45,15};
Select_Srot(X,N);
for(i = 0; i < 8; i++)
printf("%d ",X[i]);
}