快速排序思想

简介: 快速排序思想

快速排序是指通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序。整个排序过程可以递归进行,以此达到整个数据变成有序序列。

代码实现:

#include <stdio.h>
int a[101], n;//定义全局变量
void quicksort(int left, int right) {
 int i, j, t, temp;
 if(left > right) {
 return ;
}
 temp = a[left];
 i = left;
 j = right;
 while(i != j) {
  while(a[j] >= temp && i < j)
   j--;
  while(a[i] <= temp && i < j)
   i++;
  if(i < j) {
   t = a[i];
   a[j] = t;
  }
}
 a[left] = a[i];
 a[i] = temp;
 quicksort(left,i-1);
 quicksort(i+1,right);
}
int main() {
 int i, j, t;
 scanf("%d", &n);
 for(i = 1; i <= n; i++) {
  scanf("%d", &a[i]);
 }
 quicksort(1,n);
 for(i = 1; i <= n; i++) {
  printf("%d ", a[i]);
 }
 return 0;
}
相关文章
|
4月前
|
搜索推荐 算法
12.分而治之归并排序
12.分而治之归并排序
27 0
|
3月前
|
人工智能 搜索推荐
【hoare基础版】快速排序算法(1)
【hoare基础版】快速排序算法(1)
42 0
|
4月前
|
搜索推荐 算法
分而治之归并排序
分而治之归并排序
18 0
|
4月前
|
算法 搜索推荐 Java
【算法系列篇】分治-快排
【算法系列篇】分治-快排
|
7月前
|
搜索推荐 算法
深入探究排序算法:快速排序的实现与优化
排序算法是计算机科学中的基础知识,它们在各种应用和场景中都扮演着重要角色。本文将深入探讨一种经典的排序算法——快速排序,并介绍其实现原理及优化技巧。
50 1
|
8月前
|
算法 搜索推荐 C++
【C++】快速排序的学习和介绍
【C++】快速排序的学习和介绍
67 0
|
8月前
|
算法 搜索推荐
归并排序的思想
归并排序的思想
|
11月前
|
人工智能 算法
|
算法 搜索推荐
【21天算法学习】快速排序
【21天算法学习】快速排序
42 0
|
算法 安全
数据结构与算法之二分查找&&分而治之思想
数据结构与算法之二分查找&&分而治之思想
91 0
数据结构与算法之二分查找&&分而治之思想