menu 光风霁月。
常见排序算法总结
246 浏览 | 2020-06-28 | 阅读时间: 约 1 分钟 | 分类: 算法题,C、C++ 语言基础 | 标签: 排序算法
请注意,本文编写于 86 天前,最后修改于 86 天前,其中某些信息可能已经过时。

前言

排序算法不论在考研中还是工作面试中,都是十分重要的考点。因此,本文将常见的几种算法进行总结,以便日后进行复习。本文中的所有算法都是最基础的算法,没有进行任何优化。因为看了好多其他的文章,针对一个排序算法进行了好多优化步骤,看的头晕目眩。

快速排序

void quickSort(int left, int right, int* nums) {
    if(left > right) return;
    int base = nums[left];
    int i = left, j = right;
    while(i < j) {
        while(nums[j] >= base && i < j) j--;
        while(nums[i] <= base && i < j) i++;
        if(i < j) {
            int temp = nums[i];
            nums[i] = nums[j];
            nums[j] = temp;
        }
    }
    nums[left] = nums[i];
    nums[i] = base;
    quickSort(left, i - 1, nums);
    quickSort(i + 1, right, nums);
}

冒泡排序

void bubbleSort(int* nums, int length) {
    for (int i = 0; i < length - 1; i++) {
        for (int j = 1; j < length - i; j++) {
            if(nums[j] < nums[j - 1]) {
                int temp = nums[j];
                nums[j] = nums[j - 1];
                nums[j - 1] = temp;
            }
        }
    }
}
知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

发表评论

email
web

全部评论 (暂无评论)

info 还没有任何评论,你来说两句呐!