美文网首页
常用排序算法

常用排序算法

作者: cendechen | 来源:发表于2018-04-24 10:33 被阅读0次

工作三年了,对算法也忘记好多了,今天抽空来总结一下排序算法吧

  1. 冒泡排序
    思路:

用第一个元素与第二个元素对比,求出最大值或最小值
依次用对比第一个与第三个,寻求最大值或最小值递归

代码:

int sort(int * arr, int size) {
        int tmp;
        int i,j;
        for(i = 0; i< size; i++) {
                for(j = i+1; j < size; j++) {
                        if (arr[i] >= arr[j]) {
                                tmp = arr[i];
                                arr[i] = arr[j];
                                arr[j] = tmp;
                        }
                }
        }
        return 0;
}
  1. 插入排序

在洗牌的时候,选择新申明一个数组,取一个元素对比

int sort(int * arr, int size) {
        int temp;
        int i = 0, j = 0;
        for(i = 1; i < size; i++) {
                j = i - 1;
                temp = arr[i];
                while(j >= 0 && arr[j] > temp) {
                        arr[j + 1] = arr[j];
                        j--;
                }
                arr[j+1] = temp;
        }
        return 0;
}
  1. 快速排序

选取一个基准元素,通过从后向前遍历和从前向后遍历数组,把数组元素和基准元素进行比较,把数组分成两份,一份比基准元素大,一份比基准元素小,再利用分治策略从已经分好的两组中分别进行以上步骤,知道排序完成

void swap(int *x, int *y) {
        int tmp = *x;
        *x = *y;
        *y = tmp;
}

int partition(int * arr, int left, int right)
{
        int key = arr[left];
        while(left < right) {
                while(left < right && arr[right] >=  key)
                        --right;
                swap(arr + left, arr + right);
                while(left< right && arr[left] <= key)
                        ++left;
                swap(arr +left , arr + right);
        }
        return left;
}
int sort(int arr[], int left, int right)
{
        if (left >= right)
                return 0;
        int mid = partition(arr, left, right);
        sort(arr, left, mid - 1);
        sort(arr, mid+1, right );

        return 0;
}

相关文章

  • 算法04-棋牌游戏常用排序算法

    算法04-棋牌游戏常用排序算法 一、介绍 棋牌游戏常用排序算法包括:链式基数排序、插入排序、希尔排序。 二、链式基...

  • python 排序算法

    文章概述 介绍各大常用经典的排序算法和效率,以及python实现常用算法(冒泡排序,选择排序,快速排序,插入排序)...

  • 常用的排序算法

    常用的排序算法 常用的排序算法插入排序折半插入排序shell 排序冒泡排序选择排序快速排序基数排序归并排序堆排序K...

  • 常用算法

    常用排序算法

  • 常见排序算法

    常用排序算法

  • 全面介绍9种常用的排序算法

    本篇给大家介绍几种软件工程中常用的排序算法 所有排序算法的核心的代码都在《常用排序算法核心代码》[https://...

  • 算法学习(1)-排序算法

    八大排序算法九大排序算法再总结[经典排序算法][集锦][直观学习排序算法] 视觉直观感受若干常用排序算法 快速排序...

  • Java语言——数组排序算法

    数组有很多常用的算法,包括冒泡排序、直接选择排序和反转排序。 一、冒泡排序 冒泡排序是最常用的数组排序算法之一,它...

  • Python一行代码实现快速排序

    上期文章排序算法——(2)Python实现十大常用排序算法为大家介绍了十大常用排序算法的前五种(冒泡、选择、插入、...

  • 常用排序算法

    常用的排序算法 在此总结一下常用排序算法的代码实现 #include using namespace std;t...

网友评论

      本文标题:常用排序算法

      本文链接:https://www.haomeiwen.com/subject/ydxfhftx.html