1、插入排序—————————————————————————————
#include
void InsertSort(int intArray[])
{
int i,j,k;
for(i = 1;i<10;++i)
{
if(intArray[i]
k=intArray[i];
intArray[i]=intArray[i-1];
intArray[i-1]=k;
k=intArray[i-1];
for(j = i-2;j>=0;j--)
{
if(intArray[j]>k)
{
intArray[j+1]=intArray[j];
intArray[j] = k;
}
}
}
}
printf("排序后的顺序为:");
for(i = 0;i<10;i++)
{
printf("%d ",intArray[i]);
}
}
void main()
{
int i,arrayInt[] = {8,10,11,3,7,26,32,84,98,96};
printf("需要排序的数为:");
for(i = 0;i<10;i++)
{
printf("%d ",arrayInt[i]);
}
printf("\n\n");
InsertSort(arrayInt);
printf("\n\n");
}
2、希尔运算—————————————————————————————
#include
#include
void ShellSort(int arrayint[])
{
int *delta,i = 0,k = 8,l,m,temp;
delta = (int*)malloc(sizeof(int)*(k/2));
while(k>0)
{
k = k/2;
delta[i++] = k;
}
printf("希尔排序后的顺序为:");
for(i = 0;delta[i]>0;i++)
{
k = delta[i];
for(l = delta[i];l<8;l++)
{
if(arrayint[l]
temp = arrayint[l];
for(m =l-k;m>=0&&temp
arrayint[m+k] = arrayint[m];
arrayint[m] = temp;
}
}
}
}
for(m = 0;m<8;m++)
{
printf("%d ",arrayint[m]);
}
printf("\n\n");
}
void main()
{
int i,arrayint[8] = {17,14,3,7,5,2,1,3};
printf("需要排序的数为:");
for(i=0;i<8;i++)
{
printf("%d ",arrayint[i]);
}
printf("\n\n");
ShellSort(arrayint);
}
给你一个全的:
void insertsort(int *A,int n) // 插入排序
{
int i,j;
int temp;
for(i=1;i
temp=A[i];
j=i-1;
while(temp{
A[j+1]=A[j];
j--;
}
A[j+1]=temp;
}
}
void Shellsort(int *A,int n) // 希尔排序
{
int i,j,gap;
int temp;
gap=n/2;
while(gap>0)
{
for(i=gap;i
j=i-gap;
while(j>=gap)
if(A[j]>A[j+gap])
{
temp=A[j];
A[j]=A[j+gap];
A[j+gap]=temp;
j=j-gap;
}
else j=0;
}
gap=gap/2;
}
}
void bubblesort(int *A,int n) // 冒泡排序
{
int i,j;
int temp;
for(i=0;i
if(A[j]{
temp=A[j];
A[j]=A[j-1];
A[j-1]=temp;
}
}