数组最值和两种排序

 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 }
原文地址:https://www.cnblogs.com/wangchaomahan/p/9592489.html