C代码
#include<stdio.h>
#include<stdlib.h>
#define SWAP(x,y) {int temp;temp=x;x=y;y=temp;}
void selsort(int *num,int N)
{
int i,j;
for (i = 0; i < N-1; i++)
{
int min = i;
for (j = i+1; j < N; j++)
{
if (num[min] > num[j])
SWAP(num[min], num[j]);
}
}
for (i = 0; i < N; i++)
{
printf("%d ", num[i]);
}
}
void InsSort(int *num,int N)
{
int i,j;
for (i = 1; i < N; i++)
{
int temp = num[i];
for (j = i-1; j >= 0; j--)
{
if (num[i] > num[j])
{
for (int k = i - 1; k >= j+1; k--)
num[k + 1] = num[k];
num[j + 1] = temp;
break;
}
if (j == 0)
{
for (int k = i - 1; k >= 0; k--)
num[k + 1] = num[k];
num[j] = temp;
}
}
}
for (i = 0; i < N; i++)
{
printf("%d ", num[i]);
}
}
void InsSort_two(int *num, int N)
{
int i, j;
for (int i = 1; i < N; i++)
{
j = i - 1;
int temp = num[i];
while (temp < num[j])
{
num[j+1] = num[j];
j--;
if (j == -1)
break;
}
num[j+1] = temp;
}
for (i = 0; i < N; i++)
printf("%d ", num[i]);
}
void bubsort(int num[], int N)
{
int i, j;
for (int i = 0; i < N - 1; i++)
{
for (j = 0; j < N - 1-i; j++)
if (num[j+1] < num[j])
SWAP(num[j+1], num[j]);
}
for (i = 0; i < N; i++)
printf("%d ", num[i]);
}
int main()
{
int num[10] = { 4,2,6,8,12,44,11,5,1,56 };
bubsort(num,10);
system("pause");
return 0;
}