Eukleides project

from http://d.hatena.ne.jp/u5_h/

(構造関連)整列アルゴリズム(1)

比較的平易な整列アルゴリズムを示す。
//simplesort.c
//This program is sorting upstair data gradually
//author u5
//2006 7 AUG
//how to Make
// gcc simplesort.c -o simplesort
//how to exec
// %./simplesort
#include
void swap(int *p,int *q);
int main(void)
{
int a={2,4,3,5,9,7,0,8,6,1};
int i,j,index;
for(i=0;i<=10;i++)
{
for(j=i+1;j<=9;j++)
{
if(a[i]>a[j])
swap(&a[i],&a[j]);//swapfunction
}
}
for(index=0;index<=9;index++)
printf("%d",a[index]);
return 0;
}

void swap(int *p,int *q)
{
int tmp;
tmp=*p;
*p=*q;
*q=tmp;
}
続いて選択法による整列法
この選択法は最小値を順次選んでゆく考え方を礎とす
内側のfor roopでarreyの最小値を決定し、minに今までに見つかった最小値をinteger item であるminに代入する。
//selectsort.c
//This program is sorting upstair data gradually and searching minimum data,
// and changing top index data for each.
//author u5
//2006 7 AUG

#include
void swap(int *p,int *q);
int main(void)
{
int a={3,0,4,2,5,7,6,9,1,8};
int i,min,j;
for(i=0;i<=9;i++)
{
min=i;//initialize min
for(j=i+1;j<=9;j++)
if(a[j]
int main(void)
{
int a={'\0',3,0,4,2,5,7,6,9,1,8};//index "0" is sentinel
int i,j;
int key;//data temporary memorize space
for(i=1;i<=10;i++)
{
key=a[i];
a[0]=key;
j=i-1;
while(key
int main(void)
{
int a
={3,0,4,2,5,7,6,9,1,8};//index "0" is sentinel
int i,j,h;
int key;//data temporary memorize space
h=1;
while(h<10)
h=h*3+1;
while(h>1)
{
h=h/3;
for(i=h;i<=9;i++)
{
key=a[i];
j=i-h;
while(key