• 地精排序Gnome Sort ----(排序算法十)


    1.算法原理 


    2.算法代码

    #include <stdio.h>
    
    //printArray打印出数组
    void printArray(int a[],int size){  
        printf("数组为:[%d] ",a[0]);  
        for (int i=1;i<size;i++)  
        {  
            printf(" %x ",a[i]);  
        }  
        printf("
    ");  
    }
    
    
    void main()
    {
    	//a[0]监视哨
    	int  a[10] ={0,9,8,7,6,5,4,3,2,1};
    	int  len=10;
    	int i = 1;
    	while (i < len) {
    		if (i == 1 || a[i-1] <= a[i]){
    			i++;
    		}else{
    			printf("%d<-->%d ",a[i-1],a[i]);
    			printArray(a,10);
    			a[0] = a[i]; 
    			a[i] = a[i-1]; 
    			a[--i] = a[0];
    		}	
    	}
    	printArray(a,10);
    }
    
    
    

    3.结果

    9<-->8 数组为:[0]  9  8  7  6  5  4  3  2  1
    9<-->7 数组为:[8]  8  9  7  6  5  4  3  2  1
    8<-->7 数组为:[7]  8  7  9  6  5  4  3  2  1
    9<-->6 数组为:[7]  7  8  9  6  5  4  3  2  1
    8<-->6 数组为:[6]  7  8  6  9  5  4  3  2  1
    7<-->6 数组为:[6]  7  6  8  9  5  4  3  2  1
    9<-->5 数组为:[6]  6  7  8  9  5  4  3  2  1
    8<-->5 数组为:[5]  6  7  8  5  9  4  3  2  1
    7<-->5 数组为:[5]  6  7  5  8  9  4  3  2  1
    6<-->5 数组为:[5]  6  5  7  8  9  4  3  2  1
    9<-->4 数组为:[5]  5  6  7  8  9  4  3  2  1
    8<-->4 数组为:[4]  5  6  7  8  4  9  3  2  1
    7<-->4 数组为:[4]  5  6  7  4  8  9  3  2  1
    6<-->4 数组为:[4]  5  6  4  7  8  9  3  2  1
    5<-->4 数组为:[4]  5  4  6  7  8  9  3  2  1
    9<-->3 数组为:[4]  4  5  6  7  8  9  3  2  1
    8<-->3 数组为:[3]  4  5  6  7  8  3  9  2  1
    7<-->3 数组为:[3]  4  5  6  7  3  8  9  2  1
    6<-->3 数组为:[3]  4  5  6  3  7  8  9  2  1
    5<-->3 数组为:[3]  4  5  3  6  7  8  9  2  1
    4<-->3 数组为:[3]  4  3  5  6  7  8  9  2  1
    9<-->2 数组为:[3]  3  4  5  6  7  8  9  2  1
    8<-->2 数组为:[2]  3  4  5  6  7  8  2  9  1
    7<-->2 数组为:[2]  3  4  5  6  7  2  8  9  1
    6<-->2 数组为:[2]  3  4  5  6  2  7  8  9  1
    5<-->2 数组为:[2]  3  4  5  2  6  7  8  9  1
    4<-->2 数组为:[2]  3  4  2  5  6  7  8  9  1
    3<-->2 数组为:[2]  3  2  4  5  6  7  8  9  1
    9<-->1 数组为:[2]  2  3  4  5  6  7  8  9  1
    8<-->1 数组为:[1]  2  3  4  5  6  7  8  1  9
    7<-->1 数组为:[1]  2  3  4  5  6  7  1  8  9
    6<-->1 数组为:[1]  2  3  4  5  6  1  7  8  9
    5<-->1 数组为:[1]  2  3  4  5  1  6  7  8  9
    4<-->1 数组为:[1]  2  3  4  1  5  6  7  8  9
    3<-->1 数组为:[1]  2  3  1  4  5  6  7  8  9
    2<-->1 数组为:[1]  2  1  3  4  5  6  7  8  9
    数组为:[1]  1  2  3  4  5  6  7  8  9
    
    




  • 相关阅读:
    句柄定义ODBC操作数据
    应用程序浏览器供初学者使用的 wxHTML
    类语言结构化程序设计 & 面向对象程序设计
    数字操作符九度OJ 1019 简单计算器
    类字符串java学习笔记06正则表达式
    启动命令mac安装mysql后,启动mysql ERROR 2002 (HY000)错误解决办法
    链接全局变量再说BSS段的清理
    能力知识程序员学习能力提升三要素
    修改中断内存越界的一种定位方法
    特征方向说说主成分分析(PCA)的源头
  • 原文地址:https://www.cnblogs.com/whzhaochao/p/5023468.html
Copyright © 2020-2023  润新知