• 第六章 排序-冒泡,选择,插入排序


    哔哩哔哩数据结构讲解地址: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;
        }
    }
  • 相关阅读:
    使用Oracle PROFILE控制会话空闲时间
    ORACLE sid,pid,spid总结
    总结:基于Oracle Logminer数据同步
    从操作系统rm数据文件后,利用句柄与rman恢复的过程。(已验证)
    SPOJ GCDEX (数论)
    C++类构造函数
    [置顶] 删除:大数据取舍之道读书笔记
    paip.c++ qt 图片处理 检测损坏的图片
    paip.c++ qt 目录遍历以及文件操作
    AJAX最简单的原理以及应用
  • 原文地址:https://www.cnblogs.com/xwxz/p/11867795.html
Copyright © 2020-2023  润新知