大佬教程收集整理的这篇文章主要介绍了快排归并梳理,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
#include <iostream> #include <cstdio> using namespace std; const int N = 100010; int a[n]; void quick_sort(int a[],int l,int r) { if(l >= r) return; int i = l - 1, j = r + 1,x = a[(i+j) >> 1]; while(i < j) { do i ++; while(a[i] < X); do j --; while(a[j] > X); if(i< j) swap(a[i],a[j]); } quick_sort(a,l,j); quick_sort(a,j + 1,r); } int main(void) { int n; scanf("%d",&n); for(int i = 0 ; i < n; i ++) scanf("%d",&a[i]); quick_sort(a,0,n - 1); for(int i = 0 ; i < n; i ++) printf("%d ",a[i]); return 0; }
#include<stdio.h> #define N 100010 int a[n],tmp[n]; void merge_sort(int a[],int l ,int r) { int mid = (l + r)>>1; if (l >= r) return; merge_sort(a,l,mid); merge_sort(a,mid+1,r); int s = 0,i = l, j = mid + 1; while (i <= mid && j <= r) { if(a[i] <= a[j]) tmp[s ++] = a[i ++]; else tmp[s ++] = a[j ++]; } while (i <= mid) tmp[s ++] = a[i ++]; while (j <= r) tmp[s ++] = a[j ++]; for (int k = l,t = 0; k <= r ; k ++,t ++) a[k] = tmp[t]; } int main(void) { int n; scanf("%d",&n); for(int i = 0 ; i < n ; i ++) scanf("%d",&a[i]); merge_sort(a, 0, n-1); for( int i = 0 ; i < n ; i++) printf("%d ",a[i]); return 0; }
以上是大佬教程为你收集整理的快排归并梳理全部内容,希望文章能够帮你解决快排归并梳理所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。