• 直接插入排序法---排序算法(一)


    1.排序原理

    从小到大排序

    从第二个数开始比较,将其与前一个数比较,如果小于前一个数,则插入,使其前面数是从小到大排列

    例如 数组为:38 65 97 76 13 27 49

    i=2   65>38,所以不要动 

    i=3   97>65,所以不要动

    i=4  76<97, 所以要将76插入到65到97之间 ,为 38 65  76  97  13 27 49

    i=5  13<97,所以要将13插入到38之前,使其从小到大排列 为  1338  65  76  97   27 49

    i=6   27<97,所以要将27插入到13与38之间,使其从小到大排列 为  13 27  38  65  76  97   49

    i=6   49<97,所以要将49插入到38与65之间,使其从小到大排列 为  13 27  38   49  65  76  97  

    排序结束

    2.代码

    #include <stdio.h>
    //打印数组
    void printArray(int a[],int size){
    	printf("数组为:[%d] ",a[0]);
    	for (int i=1;i<size;i++)
    	{
    		printf(" %d ",a[i]);
    	}
    	printf("
    ");
    }
    
    void main(){
    	//a[0]为监视哨
    	int a[8]={0,38,65,97,76,13,27,49};
    
    	for (int i=2;i<=7;i++)
    	{
    		printf(" i=%d  ",i);
    		printArray(a,8);
    		if(a[i]<a[i-1]){
    			a[0]=a[i];
    			a[i]=a[i-1];
    			for (int j=i-2;a[0]<a[j];j--)
    			{
    				a[j+1]=a[j];
    			}
    			a[j+1]=a[0];
    		}
    	}
    	printf("结果 ");
    	printArray(a,8);
    }
    


    3.结果

    从小到大

     i=2  数组为:[0]  38  65  97  76  13  27  49
     i=3  数组为:[0]  38  65  97  76  13  27  49
     i=4  数组为:[0]  38  65  97  76  13  27  49
     i=5  数组为:[76]  38  65  76  97  13  27  49
     i=6  数组为:[13]  13  38  65  76  97  27  49
     i=7  数组为:[27]  13  27  38  65  76  97  49
    结果 数组为:[49]  13  27  38  49  65  76  97
    

    从大到小

     i=2  数组为:[0]  38  65  97  76  13  27  49
     i=3  数组为:[65]  65  38  97  76  13  27  49
     i=4  数组为:[97]  97  65  38  76  13  27  49
     i=5  数组为:[76]  97  76  65  38  13  27  49
     i=6  数组为:[76]  97  76  65  38  13  27  49
     i=7  数组为:[27]  97  76  65  38  27  13  49
    结果 数组为:[49]  97  76  65  49  38  27  13
    



  • 相关阅读:
    iOS 之 创建分类
    iOS 之 动画
    iOS 倒出spa文件 打包
    js闭包
    wampserver配置多站点
    js重定向
    php obstart
    php保存远程图片
    php获取前天的昨天的日期
    weixin js接口
  • 原文地址:https://www.cnblogs.com/whzhaochao/p/5023477.html
Copyright © 2020-2023  润新知