zoukankan      html  css  js  c++  java
  • 数组最值和两种排序

     1 #include <stdio.h>
     2 #define N 10
     3 /*
     4 数组最值和两种排序
     5 */
     6 int main(void)
     7 {
     8 /*
     9 //题目1.求一个数组中最大与最小值
    10     int arr[N] = {9,-1,0,-3,5,6,7,8,15,10};
    11     int i,j,max,min;
    12     max = min = arr[0];//假设数组其中的一个元素 为最值
    13     for(i = 0;i<N;i++)
    14     {
    15         if(max<arr[i])
    16             max = arr[i];
    17         if(min>arr[i])
    18             min = arr[i];
    19     }
    20     printf("max = %d,min = %d
    ",max,min);
    21 */
    22 /*
    23 //题目2.对数组元素进行排序(选择排序)
    24     int arr[N] = {9,-1,0,-3,5,6,7,8,15,10};
    25     int i,j,temp;
    26     for(i = 0;i<N-1;i++)//外层比较到第N-1个元素,所以下标终止于N-2
    27     {
    28         for(j = i+1;j<N;j++)//里层比较到最后一个元素,所以下标终止于N-1
    29         {
    30             if(arr[i]>arr[j])
    31             {
    32                 temp = arr[i];
    33                 arr[i] = arr[j];
    34                 arr[j] = temp;
    35             }
    36         }
    37     }
    38     for(i = 0;i<N;i++)
    39     {
    40         printf("%d	",arr[i]);
    41     }
    42 */
    43 /*
    44 //题目3.对数组元素进行排序(选择排序)优化版本:口诀  比而不换,只换下标
    45     int arr[N] = {9,-1,0,-3,5,6,7,8,15,10};
    46     int i,j,temp,idx;
    47     for(i = 0;i<N-1;i++)
    48     {
    49         idx = i;//假设为最小值的下标
    50         for(j = i+1;j<N;j++)
    51         {
    52             if(arr[idx]>arr[j])
    53             {
    54                 idx = j;
    55             }
    56         }
    57         if(idx != i)//如果 idx == i,说明最小的就是下标i对应的元素,进入下一轮
    58         {
    59             temp = arr[i];
    60             arr[i] = arr[idx];
    61             arr[idx] = temp;
    62         }
    63     }
    64     for(i = 0;i<N;i++)
    65     {
    66         printf("%d	",arr[i]);
    67     }
    68 */
    69 /*
    70 //题目4.对数组元素进行排序(冒泡排序)
    71     int arr[N] = {9,-1,0,-3,5,6,7,8,15,10};
    72     int i,j,temp;
    73     
    74     for(i = 0;i<N-1;i++)//N个数就有N-1趟比较
    75     {
    76         for(j = 0;j<N-1-i;j++)//每趟里面又有N-1-i次比较
    77         {
    78             if(arr[j]>arr[j+1])
    79             {
    80                 temp = arr[j];
    81                 arr[j] = arr[j+1];
    82                 arr[j+1] = temp;
    83             }
    84         }
    85     }
    86     for(i = 0;i<N;i++)
    87     {
    88         printf("%d	",arr[i]);
    89     }
    90 */
    91     return 0;
    92 }
  • 相关阅读:
    Java常考面试题整理(一)
    TLPI读书笔记第29章:线程介绍
    TLPI读书笔记第57章-SOCKET:UNIX DOMAIN
    TLPI读书笔记第23章:定时器与休眠1
    java中线程安全的集合
    在springboot中使用jdbcTemplate
    springboot设置定时任务(转)
    springboot中使用swagger
    springboot中的@RequestMapping和@GetMapping(转)
    springboot在controller中传递参数
  • 原文地址:https://www.cnblogs.com/wangchaomahan/p/9592489.html
Copyright © 2011-2022 走看看