• 数据结构_郝斌_五种常用排序概述


    排序

    • 排序是查找的前提

    五种常见排序

    • 冒泡
    • 插入
    • 选择
    • 快速排序
    • 归并排序

    一种快速排序的代码

    //快速排序.cpp
    
    #include <stdio.h>
    #include <stdlib.h>
    
    //函数声明
    int FindPos(int * a,int low, int high);
    void QuickSort(int * a,int low,int high);
    
    int main(void)
    {
        int a[6] = {2, 1, 0, 5, 4, 3};
        int i;
    
        QuickSort(a, 0, 5);       //第二个参数表示第一个元素的下标,第三个参数表示最后一个元素的下标
    
        for(i=0; i<6; ++i)
            printf("%d ", a[i]);
        printf("
    ");
    
        system("pause");
        return 0;
    }
    
    void QuickSort(int * a, int low, int high)
    {
        int pos;
    
        if(low < high)
        {
            pos = FindPos(a, low, high);
            QuickSort(a, low, pos-1);
            QuickSort(a, pos+1, high);
        }
    }
    
    int FindPos(int * a, int low, int high)
    {
        int val = a[low];
    
        while(low<high)
        {
            while(low<high && a[high] >= val)
                --high;
            a[low] = a[high];
    
            while(low<high && a[low] <= val)
                ++low;
            a[high] = a[low];
        }
        //终止while循环之后low和high一定是相等的
        a[low] = val;
    
        return high;      //等价于 return low;
    }
    

    再次讨论什么是数据结构

    数据结构研究是数据的存储和数据操作的一门学问

    数据的存储分为两部分:

    1. 个体的存储
    2. 个体关系的存储
    • 从某个角度而言,数据的存储最核心的就是个体关系的存储,个体的存储可以忽略不计

    再次讨论什么是泛型

    • 同一种逻辑结构,无论该逻辑结构物理存储时什么样子的,我们可以对它执行相同的操作。

    本文来自博客园,作者:小恒2020,转载请注明原文链接:https://www.cnblogs.com/xiaoheng2020/p/12770437.html

  • 相关阅读:
    alpha版本冲刺总结
    近两天项目冲刺
    关于微软必应词典客户端 的案例分析
    第三次作业——结队编程
    hdu 1002 A + B Problem II(大数)
    ZOJ 3805 Machine(二叉树,递归)
    hdu 4704 sum(费马小定理+快速幂)
    欧拉图
    hdu 1116 Play on Words(欧拉通路)
    前50个斐波那契数
  • 原文地址:https://www.cnblogs.com/xiaoheng2020/p/12770437.html
Copyright © 2020-2023  润新知