0
点赞
收藏
分享

微信扫一扫

c语言排序算法(1):直接插入排序算法


 1,在已经排好序的数组里插入一个元素:

/**************************************************
##filename : insertSort.c
##author : GYZ
##e-mail : 1746902011@qq.com
##create time : 2018-09-10 14:22:41
##last modified : 2018-09-10 14:56:47
##description : NA
**************************************************/
#include <stdio.h>
#include <stdlib.h>


#define N 10

void ShowArray(int array[],int n)
{
int i = 0;
for(;i < N; i++)
{
printf("%d,",array[i]);
}
printf("\n");
}

void InsertSort(int array[],int n,int eleNum)
{
int j = 0;
printf("insert an element %d...\n",eleNum);
for(j = n-1; (j>0) && (eleNum < array[j-1]); j--)
{
array[j] = array[j-1];
}
array[j-1] = eleNum;
printf("insert successfully! again show\n");
}

int main(int argc,char *argv[])
{
int array[N] = {2,4,6,8,10,12,16,18,20};
ShowArray(array,N);
InsertSort(array,N,14);
ShowArray(array,N);
return 0;
}

  2,使用插入排序法去排序没有排好序的数组:

/**************************************************
##filename : insertSort.c
##author : GYZ
##e-mail : 1746902011@qq.com
##create time : 2018-09-10 14:22:41
##last modified : 2018-09-10 15:43:54
##description : NA
**************************************************/
#include <stdio.h>
#include <stdlib.h>


#define N 10

void ShowArray(int array[],int n)
{
int i = 0;
for(;i < N; i++)
{
printf("%d,",array[i]);
}
printf("\n");
}

void InsertSort(int array[],int n)
{
int i = 0,j = 0;
int temp = 0;
printf("insertion sorting...\n");
for(i = 1; i < n; i++)
{
temp = array[i];
for(j = i; (j>0) && (temp < array[j-1]); j--)
{
array[j] = array[j-1];
}
array[j] = temp;
}
printf("insertion sort successfully! again show\n");
}

int main(int argc,char *argv[])
{
int array[N] = {12,14,6,18,10,2,16,8,20,4};
ShowArray(array,N);
InsertSort(array,N);
ShowArray(array,N);
return 0;
}

 

举报

相关推荐

0 条评论