• 插入排序算法的学习


    插入排序算法:

    例如序列:5,6,3,7,8,2

    采用插入排序算法对序列进行排序, 具体步骤如下:

    第一步:

    将6单独提取出来,放在一个变量中去寄存;

    然后让5与寄存项进行比较,不满足前项大于寄存项,保持原有序列不变

    序列为:5,6,3,7,8,2

    第二步:

    将3单独提取出来,放在一个变量中去寄存;

    然后让6与寄存项进行比较,满足前项大于寄存项,将3位置用6覆盖掉;

    序列为:5,6,6,7,8,2

    然后将5与寄存项进行比较,满足前项大于寄存项,将第一个6位置用5覆盖掉;

    序列为:5,5,6,7,8,2

    然后将第一个5的位置用寄存项3覆盖掉;

    序列为:3,5,6,7,8,2

    第三步:

    将7单独提取出来,放在一个变量中去寄存;

    然后将6和寄存项去比较,不满足前项大于寄存项,直接保持原序列;

    序列为:3,5,6,7,8,2

    然后用3和5去和寄存项比较,均不满足前项大于寄存项,直接保持原有序列;

    序列为:3,5,6,7,8,2

    第四步:

    将8单独提取出来,放在一个变量中去寄存;

    然后将7和寄存项去比较,不满足前项大于寄存项,直接保持原序列;

    序列为:3,5,6,7,8,2

    然后3,5,6,再依次和寄存项去比较,均不满足前项大于寄存项,直接保持原有序列;

    序列为:3,5,6,7,8,2;

    第五步:

    将2单独提取出来,放在一个变量中去寄存;

    然后将8和寄存项去比较,满足前项大于后项,用8将2的位置覆盖掉;

    序列为:3,5,6,7,8,8

    然后将7和寄存项去比较,满足前项大于后项,将第一个8位置用7覆盖掉;

     序列为:3,5,6,7,7,8

    然后将6和寄存项去比较,满足前项大于后项,将第一个7位置用6覆盖掉;

    序列为:3,5,6,6,7,8

    然后将5和寄存项去比较,满足前项大于后项,将第一个6位置用5覆盖掉;

    序列为:3,5,5,6,7,8

    然后将3和寄存项去比较,满足前项大于后项,将第一个5位置用3覆盖掉;

    序列为:3,3,5,6,7,8

    最后将第一个3的位置用寄存项覆盖掉:

    序列为:2,3,5,6,7,8

    至此,排序工作完成;

    #include <stdio.h>
    
    int num[6]=
    {
    	5,6,3,7,8,2	
    };
    
    void printfList(int a[],int n); 
    
    /*
    	插入排序算法 
    */
    void sort(int a[],int n)
    {
    	int i,j,temp;
    	for(i=1;i<n;i++)
    	{
    		temp=a[i];
    		printf("第%d步寄存项:%d
    ",i,temp);
    		for(j=i;j>0&&a[j-1]>temp;j--)
    		{
    			a[j]=a[j-1];
    			printfList(num,6);	
    		}
    		a[j]=temp;
    		printfList(num,6);
    		printf("
    ");
    	} 
    }
    
    /*    
    	打印数组 
    */
    void printfList(int a[],int n)
    {
    	int i=0;
    	for(i=0;i<n;i++)
    	{
    		printf("  %d",a[i]);
    	}
    	printf("
    ");	
    }
    
    int main(void)
    {
    	sort(num,6);	
    }
    

  • 相关阅读:
    Spring(03)Spring IOC 概述
    Spring IoC Bean 创建方法总结
    Spring Boot 目录
    Spring 循环引用(三)AbstractFactoryBean 如何解决循环依赖
    Spring(02)重新认识 IoC
    极客时间
    Spring(01)特性总览
    Spring 核心编程思想目录
    Spring IOC 前世今生之 JDNI
    sharding-jdbc-core 源码分析
  • 原文地址:https://www.cnblogs.com/achao123456/p/6361564.html
Copyright © 2020-2023  润新知