/*
时间:2012年5月18日 19:10:14
功能:直接插入排序 —— 简单排序
*/
时间:2012年5月18日 19:10:14
功能:直接插入排序 —— 简单排序
*/
# include <stdio.h>
/*
排序处理部分。修改伪代码:
1. 将data[0]改为中间变量temp;
2.int i = 2 改为 int i=1,因为数组是从0开始。
*/
void InsertSort(int data[], int len)
{
for (int i=1; i<len; i++)
{
if(data[i] < data[i-1])
{
int temp = data[i];
data[i] = data[i-1];
排序处理部分。修改伪代码:
1. 将data[0]改为中间变量temp;
2.int i = 2 改为 int i=1,因为数组是从0开始。
*/
void InsertSort(int data[], int len)
{
for (int i=1; i<len; i++)
{
if(data[i] < data[i-1])
{
int temp = data[i];
data[i] = data[i-1];
for (int j=i-2; data[j]>temp; j--) data[j+1] = data[j];
data[j+1] = temp;
}
}
}
}
}
}
// 数组输出。
void OutPut(int data[], int len)
{
for (int i=0; i<len; i++)
{
printf("%d ", data[i]);
}
printf("\n\n");
}
void OutPut(int data[], int len)
{
for (int i=0; i<len; i++)
{
printf("%d ", data[i]);
}
printf("\n\n");
}
int main(void)
{
int data[] = {33, 21, 5, 47, 1, 88, 77};
printf("简单直接插入排序前的数组:\n");
OutPut(data, 7);
InsertSort(data, 7);
printf("简单直接插入排序后的数组:\n");
OutPut(data, 7);
{
int data[] = {33, 21, 5, 47, 1, 88, 77};
printf("简单直接插入排序前的数组:\n");
OutPut(data, 7);
InsertSort(data, 7);
printf("简单直接插入排序后的数组:\n");
OutPut(data, 7);
return 0;
}
}
/*
结果:
-----------------------------------
简单直接插入排序前的数组:
33 21 5 47 1 88 77
结果:
-----------------------------------
简单直接插入排序前的数组:
33 21 5 47 1 88 77
简单直接插入排序后的数组:
1 5 21 33 47 77 88
1 5 21 33 47 77 88
Press any key to continue
-----------------------------------
-----------------------------------
*/
转载于:https://blog.51cto.com/4181703/868103