美文网首页
C语言-快速排序法

C语言-快速排序法

作者: MonkeyHeng | 来源:发表于2016-02-10 17:40 被阅读115次
#include <stdio.h>  
#include <stdlib.h>  
  
//快速排序  
void quickSort();  
  
int main(int argc, const char * argv[])  
{  
    int num_really[11];  
    for (int i = 0; i < 11; i++) {  
        num_really[i] = arc4random() % (90 - 10 + 1) + 10;  
    }  
    for (int i = 0; i < 11; i++) {  
        printf("%d ", num_really[i]);  
    }  
    printf("\n");  
    quickSort(num_really, 0, 10);  
    for (int i = 0; i < 11; i++) {  
        printf("%d ", num_really[i]);  
    }  
    printf("\n");  
    return 0;  
}  
  
  
//快速排序  
void quickSort(int num[], int start, int end) {  
    int i = start;  
    int j = end;  
    //记录比较值  
    int k = num[start];  
    //记录上一步是什么  
    int past_step = 0;  
    while (i != j) {  
        //找比比较值大的数  
        if (past_step == 0) {  
            while (num[j] > k) {  
                j--;  
                if (j == i)  
                    break;  
            }  
            num[i] = num[j];  
            past_step = 1;  
        } else {  
            while (num[i] < k) {  
                i++;  
                if (i == j)  
                    break;  
            }  
            num[j] = num[i];  
            past_step = 0;  
        }  
    }  
    num[i] = k;  
    if (i > start)  
        quickSort(num, start, i);  
    if (i+1 < end)  
        quickSort(num, i+1, end);  
      
}  

相关文章

  • C语言-快速排序法

  • C语言中的指针与数组

    C语言中的指针与数组 @(C语言)[排序算法, 快速排序, C实现] 引言 相信指针与数组是不少同学在初学C语言时...

  • 排序算法总结

    选择排序法 插入排序法 冒泡排序法 归并排序法 自顶向下 自底向上 快速排序法 单路快速排序法 双路快速排序法 三...

  • C语言中排序方法的使用

    C语言中排序方法 学习目的 今天我们学习了三种排序方法:冒泡排序法、选择排序法、插入排序法。 相关技术,及其实用 ...

  • 排序算法

    快速排序:顾名思义就是快,c语言底层实现的排序算法主要就是用的快速排序。快速排序,最好时间复杂度是nlogn,最坏...

  • 快速排序 - C语言

    啥是快排 快排就是选定一个基准元素pirot,经过一趟排序后,使得pirot前面的元素都比它小,pirot后面的元...

  • 快速排序(C语言)

    算法原理 快速排序是目前在实践中非常高效的一种排序算法,它不是稳定的排序算法,平均时间复杂度为O(nlogn),最...

  • 数据结构02-高效排序算法

    第二章 高效排序算法 第二章 高效排序算法一、快速排序基本思想快速排序图示一次划分C 语言实现Java 语言实现算...

  • DAY5C语言知识整理4(数组排序)+杀人游戏(约瑟夫环)+猜数

    c语言知识整理4 排序 分类 快速排序、希尔排序、堆排序、直接选择排序不是稳定的排序算法,而基数排序、冒泡排序、直...

  • iOS常见算法

    升序算法:用冒泡排序法 选择排序法 快速排序

网友评论

      本文标题:C语言-快速排序法

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