zoukankan      html  css  js  c++  java
  • 数组排序与二维数组

    //
    //  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("
    ");
    //    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("
    ");
        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("
    ");
    //    
    //    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("
    ");
    //    }
    //    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("
    ");
    //    }
    //    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("
    ");
    //    }
    //    return 0;
    //}
    
    //12 34 5 6 7
    
    
    //int main(int argc,const char *argv[])
    //{
    //    int a[100]={};
    //    int cnt = 0;//统计输入数组元素个数
    //    for (int i=0; i<100; i++) {
    //        scanf("%d", &a[i]);
    //        cnt++;
    //        if (getchar()=='
    ') {
    //            break;
    //        }
    //    }
    //    printf("cnt = %d
    ", cnt);
    //    return 0;
    //}
    
    
    //int main(int argc,const char *argv[])
    //{
    //    char str[100]={};
    //    int cnt=0;
    //    for (int i=0; i<100; i++) {
    //        //scanf("%c", &str[i]);
    //        str[i]=getchar();
    //        if (str[i]=='
    ') {
    //            str[i]='';
    //            break;
    //        }
    //        cnt++;
    //    }
    //    printf("cnt = %d
    ", cnt);
    //    return 0;
    //}
  • 相关阅读:
    查看web访问日志各url shell
    分页公式
    编译hadoop2.6.0源码
    淘宝微信支付
    nodejs hot deployment
    nwjs
    css小技巧
    webpack babel 相关文章
    nodejs web framework
    swiper
  • 原文地址:https://www.cnblogs.com/0515offer/p/4547145.html
Copyright © 2011-2022 走看看