一维数组相关例题

找最大值、数组逆序、冒泡排序😃
  • 找一维数组内元素的最大值
#include<iostream>
using namespace std;
int main() {
    //找最大值最大值

    int arr[] = {300,350,200,400,250};
    int max = 0;
    for (int i=0;i<5;i++)
    {
        if (arr[i] > max)
        {
            max = arr[i];
        }
    }
    cout << "最大值为" << max << endl;  

    system("pause");
    return 0;
}


  • 数组逆序
#include<iostream>
using namespace std;
int main() {

    int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
    int temp;
    int start = 0;
    int end = sizeof(arr) / sizeof(arr[0]) - 1;
    cout << "变换前:" << endl;
    for (int i=0;i<10;i++)
    {
        cout << arr[i] << endl;
    }
 
    while (start < end)
    {
        temp = arr[start];
        arr[start] = arr[end];
        arr[end] = temp;
        start++;
        end--;
    }
    cout << "变换后:" << endl;
    for (int i = 0; i < 10; i++)
    {
        cout << arr[i] << endl;
    }

    system("pause");
    return 0;
}
注意:交换代码的使用:
        temp = arr[start];
        arr[start] = arr[end];
        arr[end] = temp;

  • 冒泡排序
#include<iostream>
using namespace std;
int main() {

    int arr[] = {1,4,8,6,10,3,5,7,9};
    int num = sizeof(arr) / sizeof(arr[0]);
    int temp;
    //总共排序的轮数=元素个数-1
    for (int i = 0; i < num - 1; i++)
    {
        //内层循环对比 次数=元素个数-当前轮数-1
        for (int j = 0; j < num - i - 1; j++)
        {
            if (arr[j] > arr[j + 1])
            {
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
         
        }
    }
 
    for (int i = 0; i < num; i++)
    {
        cout << arr[i] << " ";
    }
    cout << endl;

    system("pause");
    return 0;
}
注意:重点理解冒泡排序的思路与原理,原理图如下


排序了多少轮:总共排序的轮数=元素个数-1
内层循环对比:次数=元素个数-当前轮数-1
使用两个for循环嵌套即可实现。
全部评论

相关推荐

点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-15 17:24
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务