直接插入排序.cpp

来自「c++算法的很经典的一些小练习 看了 觉得还可以 给大家分享一下!」· C++ 代码 · 共 42 行

CPP
42
字号
#include<stdio.h>

int N=3;
typedef struct{
	 char name[20];
	 int key;
	 }snode;
void insertsort(snode *r);
void outlist(snode *r);

main(){
	snode *r;
	printf("输入所要排序的元素的数目N=");
	scanf("%d",&N);
	r=new snode[N+1];
	printf("input key:");
	for(int i=1;i<N+1;i++)
		scanf("%d",&r[i].key);
	insertsort(r);
	outlist(r);
	delete[]r;
}

void insertsort(snode *r)
{  int i,j;
   for(i=2;i<=N;i++)
     if(r[i].key<r[i-1].key){
	 r[0]=r[i];j=i-1;
	 do{
	    r[j+1]=r[j];j--;
	   }
	 while(r[0].key<r[j].key);
	 r[j+1]=r[0];
    }
}
void outlist(snode *r)
{   int i;
    for(i=1;i<=N;i++)
      printf("%d  ",r[i].key);
    printf("\n");
 }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?