zoukankan      html  css  js  c++  java
  • 第六章 排序-冒泡,选择,插入排序

    哔哩哔哩数据结构讲解地址:https://space.bilibili.com/356198029

    本代码视频讲解地址:https://www.bilibili.com/video/av74560022

    冒泡排序

    #include<iostream>
    using namespace std;
    void bubble(int[], int);
    
    int main()
    {
        int array [] = {55,2,6,4,32,12,9,73,26,37};
    
        int len = sizeof(array) / sizeof(int);
        cout<<"输入的原始序列:  ";
        for(int i=0; i<len; i++) // 输出原序列
            cout<<array[i]<<",";
        cout<<endl<<endl;
        cout<<"  ----冒泡排序过程如下---- " << endl;
        bubble(array,len); // 调用排序函数
        return 0;
    }
    
    void bubble(int a[], int size)
    {
        // 冒泡排序具体的过程
        // 两个for循环,一个控制轮数,一个控制每轮比较的次数
        for(int pass=1; pass<size; pass++) // 比较的 size - 1 轮
        {
            for(int i=0; i<size-pass; i++) // 每轮比较的次数: size-pass
                if(a[i+1]<a[i])
                {
                    swap(a[i],a[i+1]);
                }
    
            for(int j=0; j<size; j++)
                cout<<a[j]<<",";
            cout<<endl;
        }
    }

    选择排序

    //
    // Created by Tusdao_xxw on 2019/11/10.
    //
    # include<iostream>
    using namespace std;
    void selectSort(int[], int);
    
    int main()
    {
        int array [] = {55,2,6,4,32,12,9,73,26,37};
    
        int len = sizeof(array) / sizeof(int);
    
        cout<<"输入的原始序列:  ";
        for(int i=0; i<len; i++) // 输出原序列
            cout<<array[i]<<",";
        cout<<endl<<endl;
    
        cout<<"  ----选择排序开始---- " << endl;
        selectSort(array,len); // 调用排序函数
        return 0;
    }
    void selectSort(int a[], int size)
    {
        int minIndex, temp;
        for(int i=0; i<size; i++)
        {
            minIndex=i;
            for(int j=i;j<size; j++)
            {
                if(a[minIndex]>a[j])
                {
                    minIndex = j;
                }
            }
            temp = a[i];
            a[i] = a[minIndex];
            a[minIndex] = temp;
            for(int j=0; j<size; j++)
                cout<<a[j]<<",";
            cout<<endl;
        }
    }

    插入排序

    #include<iostream>
    using namespace std;
    void isort(int[], int);
    
    int main()
    {
        int array [] = {55,2,6,4,32,12,9,73,26,37};
    
        int len = sizeof(array) / sizeof(int);
    
        cout<<"输入的原始序列:  ";
        for(int i=0; i<len; i++) // 输出原序列
            cout<<array[i]<<",";
        cout<<endl<<endl;
    
        cout<<"  ----插入排序开始---- " << endl;
        isort(array,len); // 调用排序函数
        return 0;
    }
    
    void isort(int a[], int size)
    {
        int inserter, index;
        // 插入排序过程
        for(int i=1; i<size; i++)
        {
            inserter = a[i]; // 待插入的元素
            index = i - 1;  // 与待插入元素比较的元素下标,前i个元素已经排好顺序
            while(index>=0 && inserter < a[index]) // 找位置关键操作
            {
                a[index + 1] = a[index];
                index--;
            }
            a[index + 1] = inserter;
            for(int j=0; j<size; j++)
                cout<<a[j]<<",";
            cout<<endl;
        }
    }
  • 相关阅读:
    springboot项目在IDEA根据不同的开发人员读取不同的配置文件
    Idea中一个服务按多个端口同时启动
    修改feign解析器替换json
    Intellij IDEA中启动多个微服务--开启Run Dashboard管理
    解决springboot乱码和window cmd乱码
    调用远程linux服务器shell脚本
    cp复制命令详解
    ftp列出具体目录的所有目录,和目录按照文件类型列出
    Linux下Redis开机自启(Centos)
    vsftpd 配置上传失败553
  • 原文地址:https://www.cnblogs.com/xwxz/p/11867795.html
Copyright © 2011-2022 走看看