[算法]蛇形数组算法

//

//  main.c

//  test2

//

//  Created by 丁小未 on 13-7-14.

//  Copyright (c) 2013年 dingxiaowei. All rights reserved.

//

//蛇形函数问题

#include<stdio.h>

#include<string.h>

void main()

{

   int i = 0,n,k = 1;

   printf("请输入N:");

   scanf("%d",&n);  //

   int j = n-1,s[100][100];

   memset(s,0,sizeof(s));
 //内存初始化

   

   while(k<=n*n)

   {

       while(i<=n-1&&s[i][j]==0&&k<=n*n)
{s[i++][j] = k++;}

       i--;//不然的话上面一行i++之后越过边界了

       j--;//不然会覆盖边角的那个数

       while(j>=0&&s[i][j]==0&&k<=n*n)
 {s[i][j--] = k++;}

       j++;

       i--;

       while(i>=0&&s[i][j]==0&&k<=n*n)
 {s[i--][j] = k++;}

       i++;

       j++;

       while(j<=n-1&&s[i][j]==0&&k<=n*n)
 {s[i][j++] = k++;}

       i++;

       j--;

   }

   

   //打印输出

   for(int x = 0;x<n;x++)

   {

       for(int y = 0;y<n;y++)

       {

           if(s[x][y]<10)

               printf("%d  ",s[x][y]);

           else

               printf("%d ",s[x][y]);

       }

       printf("\n");

   }

}

结果:

时间: 2024-09-13 21:57:34

[算法]蛇形数组算法的相关文章

python标准算法实现数组全排列的方法

 这篇文章主要介绍了python标准算法实现数组全排列的方法,实例分析了全排列的原理与Python实现技巧,需要的朋友可以参考下     本文实例讲述了python标准算法实现数组全排列的方法,代码来自国外网站.分享给大家供大家参考.具体分析如下: 从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列.当m=n时所有的排列情况叫全排列. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 def Miden

求助一道算法题,关于数组算法

问题描述 求助一道算法题,关于数组算法 有一个字符串数组{"用户1,商品1,200","用户2,商品2,100","用户3,商品1,300","用户4,商品3,50","用户5,商品3,50"},写的方法需要返回的是{"用户2,商品2","用户3,商品1","用户4,商品3"}也就是说比较下每种商品的最高价格是谁,并返回谁买了,如果价格相同取最先买

iostream-程序目的是通过排序算法进行数组由大到小排序 但不同编译器运行结果不一致

问题描述 程序目的是通过排序算法进行数组由大到小排序 但不同编译器运行结果不一致 程序目的是通过排序算法进行数组由大到小排序 但不同编译器运行结果不一致 #include <iostream> #include <iomanip> //使用setw()函数 using namespace std;//定义无参函数 void bubble(int[], int); int main() { int arry[10] = {11, 4, 55, 6, 77, 8, 9, 0, 7, 1

c#-数据结构(C#),算法,数组

问题描述 数据结构(C#),算法,数组 我想用C#语言中数组来存储,可是怎样写数组的算法?怎样调用? 解决方案 你是不会用数组吗http://www.cnblogs.com/jiajiayuan/archive/2012/04/19/2442673.html 解决方案二: 数据结构与算法(C#):数组和ArrayList数据结构和算法------数组C#算法与数据结构汇总 解决方案三: 你这问题问的,哪种语言里边没有数组... 解决方案四: 你要用数组来存储什么东西?这个要所清楚!别人才好回答你

python标准算法实现数组全排列的方法_python

本文实例讲述了python标准算法实现数组全排列的方法,代码来自国外网站.分享给大家供大家参考.具体分析如下: 从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列.当m=n时所有的排列情况叫全排列. def Mideng(li): if(type(li)!=list): return if(len(li)==1): return [li] result=[] for i in range(0,len(li[:])): bak=li[:] h

JS随机洗牌算法之数组随机排序_javascript技巧

推荐阅读:JavaScript学习笔记之数组的增.删.改.查 JavaScript学习笔记之数组求和方法 JavaScript学习笔记之数组随机排序 洗牌算法是一个比较形象的术语,本质上让一个数组内的元素随机排列.举例来说,我们有一个如下图所示的数组,数组长度为 9,数组内元素的值顺次分别是 1~9: 从上面这个数组入手,我们要做的就是打乱数组内元素的顺序: 代码实现 维基百科上的 Fisher–Yates shuffle 词条对洗牌算法做了详细介绍,下面演示的算法也是基于其中的理论编写的: A

JavaScript常用数组算法小结_javascript技巧

今天抽点时间把javascript中的一些常用的数组算法做一下总结,以方便大家面试笔试或者日常开发过程中用到.其中部分算法来自网络,这里做了下汇总整理.文章末尾我会把参考的来源附上去,如果直接看算法比较枯燥的可以到参考文献里去看,讲解的非常不错. 一.数组去重 方法1: //利用数组的indexOf方法 function unique (arr) { var result = []; for (var i = 0; i < arr.length; i++) { if (result.indexO

JavaScript使用二分查找算法在数组中查找数据的方法_javascript技巧

本文实例讲述了JavaScript使用二分查找算法在数组中查找数据的方法.分享给大家供大家参考.具体分析如下: 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好:其缺点是要求待查表为有序表,且插入删除困难.因此,折半查找方法适用于不经常变动而查找频繁的有序列表.首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功:否则利用中间位置记录将表分成前.后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一

《算法基础:打开算法之门》一第3章 排序算法和查找算法

第3章 Algorithms Unlocked 排序算法和查找算法 在第2章中,我们看到了在数组上进行线性查找的三个算法.我们能做得更好吗?答案是:看情况.如果不清楚数组中的元素是否有序,我们是不可能做得更好的.在最坏情况下,我们必须查找数组的所有n个元素,因为如果在前n-1个元素中不能找到要找的值,那么要查找的元素可能在第n个位置上.因此,当我们不清楚数组中的元素是否有序时,我们不可能实现比Θ(n)更好的最坏情况运行时间. 然而,假定数组是以非递减顺序排序的,那么根据"非递减"的含义