数组(4)

发布于:2025-09-02 ⋅ 阅读:(22) ⋅ 点赞:(0)

int mid = min + (key - arr[min]) / (arr[max] - arr[min]) * (max - min);

17.数组常见算法4 分块查找

18.数组常见算法5 冒泡排序

笔记

小程序错误

#include<stdio.h>
int main()
{
    /*
               冒泡排序:
                        1.相邻的元素两两比较,大的放右边,小的放左边
                                2.第一轮比较完毕之后,最大值就已经确定,第二轮可以少循环一次,后面依次类推
                                3.如果数组中有n个数据,总共我们只要执行n-1轮的代码就可以
                        需求:
                            利用冒泡排序将下列数据按照从大到小的顺序进行排序
                                3,5,2,1,4
        */

    //1.定义数组存储数据
    int arr[] = { 3,5,2,1,4 };
    int len = sizeof(arr) / sizeof(int);

    //2.利用冒泡排序,把数组中的数据按照升序排列
    //第一轮:

    for (int i = 0; i < len; i++)
    {
        //相邻的元素两两比较,小的在前面,大的后面
        if (arr[i] > arr[i + 1])
        {
            int temp = arr[i];
            arr[i] = arr[i + 1];
            arr[i + 1] = temp;
        }
    }

    //遍历
    for (int i = 0; i < len; i++)
    {
        printf("%d", arr[i]);
    }



    return 0;




}

19.数组常见算法6 选择排序

小程序

#include <stdio.h>
int main()
{
    /*
             选择排序:
                      1.从0索引开始,跟后面的元素一一比较
                          2.小的放前面,大的放后面
                          3.第一轮循环从0索引开始比较,结束后最小的数据已经确定
                          4.第二轮循环从1索引开始,后面依次类推
                          5.第三轮循环从2索引开始,后面依次类推
                  6.第四轮循环从3索引开始,后面依次类推
                          需求:
                             利用选择排序将下列数据按照从小到大的顺序进行排序
                                 3,5,2,1,4
        */

    //1.定义数组存储元素
    int arr[] = { 3,5,2,1,4 };
    int len = sizeof(arr) / sizeof(int);

    //2.利用选择排序,将数组中的数据按照升序进行排列
    for (int i = 0; i < len - 1; i++)
    {
        //i.依次表示数组中的每一个索引
        //第一轮: i =0  j=1 2 3 4
        //第二轮: i=1   j=2 3 4
        //第三轮: i=2   j=3 4
        //第四轮: i=3   j=4
        for (int j = i + 1; j < len; j++)
        {
            //j:依次表示i索引后面的每一个索引
            if (arr[i] > arr[j])
            {
                int temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
            }
        }
    }


    //遍历
    for (int i = 0; i < len; i++)
    {
        printf("%d ", arr[i]);
    }


    return 0;

}

笔记


网站公告

今日签到

点亮在社区的每一天
去签到