数组排序与二维数组

//
//  main.c
//  数组排序与二维数组
//
//  Created by zhangxueming on 15/6/1.
//  Copyright (c) 2015年 zhangxueming. All rights reserved.
//

#include <stdio.h>

//冒泡排序(从小到大)
//9 7 8 5 3 --> 3 5 7 8 9
//第一次排序
//7 9 8 5 3
//7 8 9 5 3
//7 8 5 9 3
//7 8 5 3 9

//第二次排序
//7 8 5 3 9
//7 5 8 3 9
//7 5 3 8 9

//第三次排序
//5 7 3 8 9
//5 3 7 8 9

//第四次排序
//3 5 7 8 9
#define LEN  5

//int main(int argc, const char * argv[]) {
//    int a[LEN]={};
//    //输入数组
//    for (int i=0; i<LEN; i++) {
//        scanf("%d", &a[i]);
//    }
//    //冒泡排序
//    for (int i=0; i<LEN-1; i++) {
//        for (int j=0; j<LEN-i-1; j++) {
//            if (a[j]>a[j+1]) {
//                int temp= a[j];
//                a[j]=a[j+1];
//                a[j+1]=temp;
//            }
//        }
//    }
//    //遍历输出
//    for (int i=0; i<LEN; i++) {
//        printf("%d ", a[i]);
//    }
//    printf("\n");
//    return 0;
//}

//选择排序
//9 7 8 5 3   k=4   a[k] a[i]

//第一次排序
//3 7 8 5 9

//第二次排序
//3 5 8 7 9

//第三次排序
//3 5 7 8 9

//第四次排序
//3 5 7 8 9

//int main(int argc, const char *argv[])
//{
//    int a[LEN]={};
//    //输入数组
//    for (int i=0; i<LEN; i++) {
//        scanf("%d", &a[i]);
//    }
//    //选择排序
//    for (int i=0; i<LEN-1; i++) {
//        int k=i;//记录最小值下标
//        for (int j=i+1; j<LEN; j++) {
//            if (a[k]>a[j]) {
//                k=j;
//            }
//        }
//        if (k!=i) {
//            int temp = a[k];
//            a[k]=a[i];
//            a[i]=temp;
//        }
//    }
//    //输出数组
//    for (int i=0; i<LEN; i++) {
//        printf("%d ", a[i]) ;
//    }
//    printf("\n");
//    return 0;
//}

//插入排序

//9 7 8 5 3  int temp = 7;
//第一次排序
//9 9 8 5 3
//7 9 8 5 3

//第二次排序  temp = 8;
//7 9 9 5 3
//7 8 9 5 3

//第三次排序 temp = 5;
//7 8 9 9 3
//7 8 8 9 3
//7 7 8 9 3
//5 7 8 9 3

//第四次排序 temp = 3;
//5 7 8 9 9
//5 7 8 8 9
//5 7 7 8 9
//5 5 7 8 9
//3 5 7 8 9

//int main(int argc,const char *argv[])
//{
//    int a[LEN]={};
//    for (int i=0; i<LEN; i++) {
//        scanf("%d", &a[i]);
//    }
//    //插入排序
//    for (int i=0; i<LEN-1; i++) {
//        int temp = a[i+1];
//        int j=i;
//        //控制移位
//        while (a[j]>temp && j>=0) {
//            a[j+1]=a[j];
//            j--;
//        }
//        //插入元素
//        a[j+1]=temp;
//    }
//    for (int i=0; i<LEN; i++) {
//        printf("%d ", a[i]);
//    }
//    printf("\n");
//
//    return 0;
//}

//int a[5]

//int a[3][4][5]

//二维数组:由一维数组作为元素构成的一维数组

//int a[3][4];
//a[0] a[1] a[2] 是由4个int类型元素构成的数组

//二维数组的初始化

//int main(int argc,const char *argv[])
//{
//    int a[3][2]={1,[2][0]=3,4};
//    for (int i=0; i<3; i++) {
//        for (int j=0; j<2; j++) {
//            printf("%d ", a[i][j]);
//        }
//        printf("\n");
//    }
//    return 0;
//}

//int main(int argc, const char *argv[])
//{
//    int a[3][4]={{1,2,3,4},
//                { 5,6,7,8},
//                { 9,10,11,12}};
//
//    for (int i=0; i<3; i++) {
//        for (int j=0; j<4; j++) {
//            printf("%4d", a[i][j]);
//        }
//        printf("\n");
//    }
//    return 0;
//}

//1
//1 1
//1 2 1
//1 3 3 1
//1 4 6 4  1
//1 5 10 10 5 1

int main(int argc,const char *argv[])
{
    int a[10][10]={};
    for (int i=0; i<10; i++) {
        for (int j=0; j<=i; j++) {
            if (j==0 || j==i) {
                a[i][j]=1;
            }
            else
            {
                a[i][j]=a[i-1][j]+a[i-1][j-1];
            }
        }
    }
    for (int i=0; i<10; i++) {
        for (int j=0; j<=i; j++) {
            printf("%4d", a[i][j]);
        }
        printf("\n");
    }
    return 0;
}
时间: 2024-12-28 23:41:25

数组排序与二维数组的相关文章

静态初始化一个二维数组并将二维数组排序并输出

基本思想:将二维数组存入到一个新的一维数组中,将一维数组排序后,再加以格式控制输出 class work03 { public static void main(String[] args) { int a[][]={ {11,15,32,21},{2,3},{4,6,5}}; int length=0; int k=0; for(int i=0;i<a.length;i++){ for(int j=0;j<a[i].length;j++){ length++;//求二维数组元素个数 } k+

qsort对二维数组的排序

转自 :http://blog.csdn.net/slience_perseverance/article/details/6695048 qsort对二维数组排序与对以为数组排序是一样的几乎没有什么差别,而且后来想想定义一个二维数组所占的空间与定义一个机构体所占的空间是一样 的,所以没有必要用多维数组,直接用结构体数组就行. #include<stdio.h> #include<stdlib.h> #include<string.h> #include<math

Unit06: 数组的常用方法_2 、 二维数组 、 String_1

1.数组API 数组=数据+操作数据的API 1. 数组 to String:2种: var str=arr.toString(); -->输出数组中的内容,每个元素用逗号分隔 -->自动调用 var str=arr.join("连接符") ******* -->输出数组中的内容,自定义元素间连接符 批量操作页面元素时,可以用join拼接成innerHTML,一次性修改 何时使用:2种固定套路 1. 将字符组成单词:arr.join("") 2.

iOS-C_Day7___数组与二维数组

数组与函数 //1.给定某个字符数组,统计数组中所有英文字符的个数,比如“123fdd”中有 3 个. //数组作为函数的接口参数, 数组的长度丢失 #include <string.h> int numberOfCharacter(char src[], int len) { int cnt=0; for (int i=0; i<len; i++) { if ((src[i]>='A' && src[i]<='Z') || (src[i]>='a' &

PHP 数组排序 +php二维数组排序方法

PHP - 一维数组的排序函数 在本节中,我们将学习如下 PHP 数组排序函数: sort() - 以升序对数组排序 rsort() - 以降序对数组排序 asort() - 根据值,以升序对关联数组进行排序 ksort() - 根据键,以升序对关联数组进行排序 arsort() - 根据值,以降序对关联数组进行排序 krsort() - 根据键,以降序对关联数组进行排序 一维数组排序可以使用asort.ksort等一些方法进程排序,相对来说比较简单.二维数组的排序怎么实现呢?使用array_m

php对二维数组进行相关操作(排序、转换、去空白等)

php对二维数组进行相关操作(排序.转换.去空白等) 投稿:lijiao 字体:[增加 减小] 类型:转载 时间:2015-11-04 这篇文章主要介绍了php对二维数组进行相关操作,包括php对二维数组排序.转换.去空白,以及去重复值等,感兴趣的小伙伴们可以参考一下 技巧提示: ? 1 2 3 4 5 6 7 8 9 array_keys($array) //返回所有键名   array_values($array) //返回所有键值    $result=array_reverse($inp

二维数组按某列排序

1 using FrameWork.IoC.Achieve.IoCAbstractBasics; 2 using FrameWork.IoC.Achieve.IoCBasics; 3 using FrameWork.IoC.Case.Test; 4 using FrameWork.IoC.Case.Test.TestOne; 5 using FrameWork.IoC.Case.Test.TestTwo; 6 using System; 7 using System.Collections; 8

二维数组sort排序

和副本任务完全无关的奇怪感慨: 完全搞不懂我为什么会在搞图论的时候学这种奇怪东西,需要的时候不会,不需要的时候又莫名增加了奇怪的技能点. 之前的假期规划在十多天的放飞自我中彻底泡汤,简单的图论都一点不会,sad. 在想要不要把分治 贪心 递推 哈希 大根小根堆再看一遍,我似乎又忘了. 刘神刷题比我快了,我应该好好学习不能这么浪. 大概我永远没有大神们的智商优势吧,所以要更努力. 毕竟没有贯彻意志的希望一无所有,所以努力成为hal一样的绿灯侠吧少年[bushi]. 好了回归正题. 要想知道二维数组

二维数组快速排序(sort+qsort)

二维数组快速排序 qsort是c中快速排序,如果简单的一维数组排序,想必大家的懂.现在看一下二维数组的排序,虽然可以冒泡但是太费时间了,我们这里使用qsort来快速排序,看代码应该看得懂吧. 代码: 1 #include<stdio.h> 2 #include<stdlib.h> 3 struct node 4 { 5 int x,y; 6 }a[10005]; 7 int cmp(const void *a,const void *b) //要转化为结构体类型 8 { 9 str