2008秋-计算机软件基础-直接插入排序
/*
Title: 直接插入排序
Author: eman lee
算法功能:实现将一个长度为n的线性表r上的所有元素按关键字升序排列。
*/
#include<stdio.h>
void insertsort (int r[] , int n)
{
/*r[0] is preserved, elements are stored in r[1] to r[n]*/
int i,j;
for (i=2;i<=n;i++) /*外循环控制排序的总趟数*/
{
r[0]=r[i];
j=i-1;
while (r[0]<r[j]) /*在有序表中寻找插入位置*/
{
r[j+1]=r[j];
j--;
}
r[j+1]=r[0];
}
} /*insersort*/
void show(int r[] , int n)
{
/*elements are stored in r[1] to r[n]*/
int i;
for(i=1;i<=n;i++)
printf(" %d ",r[i]);
printf("\n");
}
void main()
{
int a[9]={0,38,20,46,38,74,91,12,25};
show(a,8);
insertsort(a,8);
show(a,8);
}
Title: 直接插入排序
Author: eman lee
算法功能:实现将一个长度为n的线性表r上的所有元素按关键字升序排列。
*/
#include<stdio.h>
void insertsort (int r[] , int n)
{
/*r[0] is preserved, elements are stored in r[1] to r[n]*/
int i,j;
for (i=2;i<=n;i++) /*外循环控制排序的总趟数*/
{
r[0]=r[i];
j=i-1;
while (r[0]<r[j]) /*在有序表中寻找插入位置*/
{
r[j+1]=r[j];
j--;
}
r[j+1]=r[0];
}
} /*insersort*/
void show(int r[] , int n)
{
/*elements are stored in r[1] to r[n]*/
int i;
for(i=1;i<=n;i++)
printf(" %d ",r[i]);
printf("\n");
}
void main()
{
int a[9]={0,38,20,46,38,74,91,12,25};
show(a,8);
insertsort(a,8);
show(a,8);
}