美文网首页
交换排序

交换排序

作者: Pwnmelife | 来源:发表于2019-01-19 20:46 被阅读0次
#include <stdio.h>
#include <stdlib.h>

void Bubble_Sort_1(int k[], int n);
void Bubble_Sort_2(int k[], int n);
void Bubble_Sort_3(int k[], int n);
void QuickSort(int k[], int low, int high);
int Partition(int k[], int low, int high);

int main()
{
    int k[] = { 50,26,38,80,70,90,8,30,40,20 };
    Bubble_Sort_3(k, 10);
    printf("The sorted result: \n");
    for (int i = 0; i < 10; i++) {
        printf("%d ", k[i]);
    }
    printf("\n\n");
}

void Bubble_Sort_1(int k[], int n) {
    int temp;
    for (int i = 0; i < n; i++) {
        for (int j = i + 1; j < n; j++) {
            if (k[i] > k[j]) {
                temp = k[i];
                k[i] = k[j];
                k[j] = temp;
            }
        }
    }
}
void Bubble_Sort_2(int k[], int n) {
    int temp;
    for (int i = 0; i < n; i++) {
        for (int j = n-1; j>i; j--) {
            if (k[j] < k[j-1]) {
                temp = k[j-1];
                k[j-1] = k[j];
                k[j] = temp;
            }
        }
    }
}
void Bubble_Sort_3(int k[], int n) {
    int temp;
    bool flag = true;
    for (int i = 0; i < n && flag; i++) {
        for (int j = n - 1; j > i; j--) {
            flag = 0;
            if (k[j] < k[j - 1]) {
                flag = 1;
                temp = k[j - 1];
                k[j - 1] = k[j];
                k[j] = temp;
            }
        }
    }
}
void QuickSort(int k[], int low, int high) {
    if (low < high) {
        int pivotpos = Partition(k, low, high);
        QuickSort(k, low, pivotpos - 1);
        QuickSort(k, pivotpos + 1, high);
    }
}
int Partition(int k[], int low, int high) {
    int pivot = k[low];
    while (low < high) {
        while (low < high && k[high] >= pivot) --high;
        k[low] = k[high];
        while (low < high && k[low] <= pivot) ++low;
        k[high] = k[low];
    }
    k[low] = pivot;
    return low;
}

相关文章

  • 排序算法之交换排序

    利用交换数据元素的位置进行排序的方法称为交换排序。常见的交换排序方法有冒泡排序和快速排序。 1. 冒泡排序 1.1...

  • 【数据结构】【C#】019-交换类排序:🌓冒泡排序(稳定)(重要

    交换排序:冒泡排序 ( 相邻比序法 )(稳定) 冒泡排序是一种简单的交换类排序方法,它是通过相邻的数据元素的交换,...

  • 交换排序法

    交换排序法是指借助于数据元素之间的相互交换进行排序的一种方法。冒泡排序与快速排序法都属于交换排序法。 冒泡排序法的...

  • 排序

    稳定排序 不稳定排序 交换排序 选择排序

  • 冒泡排序

    冒泡排序,属于内部排序中的交换排序。

  • 排序

    Haskell描述 插入排序 交换排序 选择排序

  • 05.交换类排序(冒泡排序,快速排序)

    05.交换类排序(冒泡排序,快速排序) 1、 交换类排序 基本思想: 两两比较待排序记录的关键字,如果发生逆序(...

  • iOS - 冒泡排序

    Demo_github 冒泡排序 冒泡排序(Bubble Sort)是一种交换排序。两两比较待排序的关键字,并交换...

  • 交换类排序算法-冒泡排序、快速排序

    交换类排序 1.冒泡排序 2.快速排序 快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用...

  • 冒泡、快排、归并

    冒泡排序 排序原理: 设置i代表交换趟数,设置j代表交换元素,设置交换标志done 将初始趟数i=1,交换标志do...

网友评论

      本文标题:交换排序

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