14
快速排序
qsort函数
头文件:#include<stdlib.h>
int qsort(需要被排序的数组,数组元素个数,每个元素大小,排序的函数名)
#include<iostream>
#include<stdlib.h>
using namespace std;
int f(const void*p,const void*q)
{
int*b=(int*)p;
int*d=(int*)q;
if(*b>*d)
{
return 1;
}else if(*b==*d)
{
return 0;
}else
{
return -1;
}
}
int main()
{
int n;
cin>>n;
int a[n];
int i=0;
for(i=0;i<n;i++)
{
cin>>a[i];
}
qsort(a,n,4,f);
for(int i=0;i<n;i++)
{
cout<<a[i]<<" ";
}
return 0;
}
单趟
记录keyi的位置,左小,右大,左右向中间移动,右向中间移动,若右小于key停止,左开始移动,左找到比key大的值,交换,若相遇则相遇位置与key交换,并将相遇位置重置为新的key
qsort函数
头文件:#include<stdlib.h>
int qsort(需要被排序的数组,数组元素个数,每个元素大小,排序的函数名)
#include<iostream>
#include<stdlib.h>
using namespace std;
int f(const void*p,const void*q)
{
int*b=(int*)p;
int*d=(int*)q;
if(*b>*d)
{
return 1;
}else if(*b==*d)
{
return 0;
}else
{
return -1;
}
}
int main()
{
int n;
cin>>n;
int a[n];
int i=0;
for(i=0;i<n;i++)
{
cin>>a[i];
}
qsort(a,n,4,f);
for(int i=0;i<n;i++)
{
cout<<a[i]<<" ";
}
return 0;
}
单趟
记录keyi的位置,左小,右大,左右向中间移动,右向中间移动,若右小于key停止,左开始移动,左找到比key大的值,交换,若相遇则相遇位置与key交换,并将相遇位置重置为新的key
全部评论
相关推荐
点赞 评论 收藏
分享
秋招投简历提醒助手:一开始还觉得是正常交流。直到一看薪资4-6😨 点赞 评论 收藏
分享
09-25 21:25
武汉理工大学 Java 点赞 评论 收藏
分享
查看12道真题和解析 点赞 评论 收藏
分享