网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

快速排序的多种思路实现-创新互联

快速排序的多种思路实现:

创新互联建站2013年至今,先为固安等服务建站,固安等地企业,进行企业商务咨询服务。为固安企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

两边想中间靠拢:

快速排序的多种思路实现

//  两边想中间靠拢,当a[left]key时,两者交换
int PartSortBothSize(int *a, int left, int right)
{
 assert(a != NULL);
 int key = a[right];
 int begin = left;
 int end = right - 1;
 while (begin < end)
 {
  while (begin=key))
  {
   --end;
  }
  if (begin < end)
  {
   swap(a[begin], a[end]);
  }
 }
 if (a[begin]>a[right])
 {
  swap(a[begin], a[right]);
  return begin;
 }
 return right;
}

挖坑法:

快速排序的多种思路实现

//   挖坑法left right是坑 a[left]>key 时 将a[left]放到right位置,a[right]= key)
  {
   right--;
  }
  if (left < right)
  {
   a[left] = a[right];
   left++;
  }
 }

 a[left] = key;
 return left;
}

顺向

快速排序的多种思路实现

//顺向
//left、right从左向右走,当a[left]key,right停止,交换两者对应的值
int PartSortBothRight(int *a, int left, int right)
{
 assert(a != NULL);
 int key = a[right];
 int prev = left;
 while (a[left] < key)//当开始的数字比key小移动left、prev
 {
  left++; prev++;
 }
 while (left < right)
 {
  while (left < right&&a[left] >= key)
  {
   left++;
  }
  while (left < right&&a[prev] <= key)
  {
   prev++;
  }
  if (left < right)
  {
   swap(a[left], a[prev]);
   left++; prev++;
  }
 }
 
 swap(a[prev], a[left]);
 return prev;
}

调用函数:

void _QuickSort(int *a, int left,int right)
{
 assert(a != NULL);
 if (left >= right)
 {
  return;
 }
 //int div = PartSortBothSize(a, left, right);
 //int div = PartSortPotholing(a, left, right);
 int div = PartSortBothRight(a, left, right);
 if (div > 0)
 {
  _QuickSort(a, left, div - 1);
 }
 if (div < right - 1)
 {
  _QuickSort(a, div + 1, right);
 }
}

void QuickSort(int *a, size_t size)
{
 assert(a != NULL);
 if (size > 1)
 {
  _QuickSort(a, 0, size - 1);
 }
}

test:

int a4[] = { 0, 5, 2, 1, 5, 5, 7, 8, 5, 6, 9, 4, 3, 5, -2, -4, -1 };

快速排序的多种思路实现

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章标题:快速排序的多种思路实现-创新互联
网站URL:http://bjjierui.cn/article/hjsic.html

其他资讯