电子商务网站建设的心得,天津做网站得公司,网页设计实训报告设计图,CQ网站建设快速排序
快速排序是一种不稳定排序#xff0c;它的时间复杂度为O(nlgn)#xff0c;最坏情况为O(n2)#xff1b;空间复杂度为O(nlgn)。 这种排序方式是对于冒泡排序的一种改进#xff0c;它采用分治模式#xff0c;将一趟排序的数据分割成独立的两部分#xff0c;其中一…快速排序
快速排序是一种不稳定排序它的时间复杂度为O(n·lgn)最坏情况为O(n2)空间复杂度为O(n·lgn)。 这种排序方式是对于冒泡排序的一种改进它采用分治模式将一趟排序的数据分割成独立的两部分其中一组数据的每个值都小于另一组。每一趟在进行分类的同时实现排序。 其中每一趟的模式通过设置key当基准元素key的选择可以是数据的第一个也可以是数据的最后一个。这里以每次选取数据的第一个为例 具体代码实现
#includestdio.h
#define N 6int fun(int arr[],int low,int high){int key;keyarr[low];while(lowhigh){while(lowhigh arr[high]key)high--;if(lowhigh)arr[low]arr[high];while(lowhigh arr[low]key)low;if(lowhigh)arr[high--]arr[low];}arr[low]key;return low;}
void quick_sort(int arr[],int start,int end)
{int pos;if(startend){posfun(arr,start,end);quick_sort(arr,start,pos-1);quick_sort(arr,pos1,end);}
}
int main()
{int i;int arr[N]{32,12,7,78,23,45};for(i0;iN;i){printf(%d ,arr[i]);}printf(\n);quick_sort(arr,0,N-1);for(i0;iN;i){printf(%d ,arr[i]);}return 0}
由于是第一次撰写博客许多地方没有一个良好的习惯还请读者见谅。创建这个博客的目的实际上是为了让自己对于数据结构与算法加深印象通过博客的形式展现出来一方面方便自己查阅另一方面以希望能够通过自己的微薄之力帮助到有需要的朋友。 也希望自己能够坚持下去认真的去做这么一件事。