从头开始学习算法和数据结构
2015-08-03 23:18
543 查看
#include<stdio.h>
#define N (10)
#define SUCCESS 0
#define FAULSE -1
typedef int Elem;
/*Function prototype*/
int InsetSort(Elem **e, int iNum);
void PrintList(Elem *e, int iNum);
void Test();
/*
*****************************************
* Function: insert sort
* Paramen : e: The number list
* iNum: number of elements
* Return : 0:SUCCESS -1:FAULSE
* Notice : None
*****************************************
*/
int InsetSort(Elem *e, int iNum)
{
int i, j, step;
if (NULL == e){
return FAULSE;
}
for (i = 1; i < iNum; i++){
step = e[i];
j = i - 1;
while( (j >= 0) && (e[j] > step))
{
e[j+1] = e[j];
j--;
}
e[j+1] = step;
}
return SUCCESS;
}
/*
*****************************************
* Function: Output the list
* Paramen : e: The number list
* iNum: number of elements
* Return : None
* Notice : None
*****************************************
*/
void PrintList(Elem *e, int iNum)
{
int i;
for (i = 0; i < iNum; i++){
printf("%d\n",e[i]);
}
}
/*
*****************************************
* Function: Test
* Paramen : None
* Return : None
* Notice : None
*****************************************
*/
void Test()
{
Elem eList
= {11, 3, 4, 6, 7, 62, 45, 24, 54, 9};
int iResult;
iResult = InsetSort(eList, N);
if (FAULSE == iResult){
printf("The List is Not Exit!\n");
return ;
}
PrintList(eList, N);
}
int main(int argc, char* argv[])
{
Test();
return 0;
}
#define N (10)
#define SUCCESS 0
#define FAULSE -1
typedef int Elem;
/*Function prototype*/
int InsetSort(Elem **e, int iNum);
void PrintList(Elem *e, int iNum);
void Test();
/*
*****************************************
* Function: insert sort
* Paramen : e: The number list
* iNum: number of elements
* Return : 0:SUCCESS -1:FAULSE
* Notice : None
*****************************************
*/
int InsetSort(Elem *e, int iNum)
{
int i, j, step;
if (NULL == e){
return FAULSE;
}
for (i = 1; i < iNum; i++){
step = e[i];
j = i - 1;
while( (j >= 0) && (e[j] > step))
{
e[j+1] = e[j];
j--;
}
e[j+1] = step;
}
return SUCCESS;
}
/*
*****************************************
* Function: Output the list
* Paramen : e: The number list
* iNum: number of elements
* Return : None
* Notice : None
*****************************************
*/
void PrintList(Elem *e, int iNum)
{
int i;
for (i = 0; i < iNum; i++){
printf("%d\n",e[i]);
}
}
/*
*****************************************
* Function: Test
* Paramen : None
* Return : None
* Notice : None
*****************************************
*/
void Test()
{
Elem eList
= {11, 3, 4, 6, 7, 62, 45, 24, 54, 9};
int iResult;
iResult = InsetSort(eList, N);
if (FAULSE == iResult){
printf("The List is Not Exit!\n");
return ;
}
PrintList(eList, N);
}
int main(int argc, char* argv[])
{
Test();
return 0;
}
相关文章推荐
- 动易2006序列号破解算法公布
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- c语言实现的带通配符匹配算法
- 浅析STL中的常用算法
- 算法之排列算法与组合算法详解
- C++实现一维向量旋转算法
- Ruby实现的合并排序算法
- C#折半插入排序算法实现方法
- 基于C++实现的各种内部排序算法汇总
- C++线性时间的排序算法分析
- C++实现汉诺塔算法经典实例
- PHP实现克鲁斯卡尔算法实例解析
- C#获取关键字附近文字算法实例