c++怎么实现对输入数组进行快速排序-创新互联

这篇文章主要介绍c++怎么实现对输入数组进行快速排序,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站设计制作、成都网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的花溪网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

直接上代码

#include "stdafx.h"
#include <iostream>
#include <string>
#include <vector>
using namespace std;
void quickSort(vector<int> &a, int, int);
void swap(int &a, int&b);
vector<string> split(string s, string seperator);

int main() {
  string str;
  cout << "please input your array: " << endl;
  getline(cin, str);
  vector<string> strs = split(str, " ");
  cout << "The original array is " << endl;
  for (unsigned int i = 0; i < strs.size(); i++) {
    cout << strs[i] << " ";
  }
  cout << endl;
  vector<int> array(strs.size());
  for (unsigned int i = 0; i < strs.size(); i++) {
    array[i] = atoi(strs[i].c_str());
  }
  int len = array.size();
  cout << "The ordered array is " << endl;
  quickSort(array, 0, len-1);
  for (int i = 0; i < len; i++) {
    cout << array[i] << " ";
  }
  cout << endl;
  system("pause");
  return 0;
}
void quickSort(vector<int> &a, int start, int base) {
  if (start >= base) {
    return;
  }
  int i = start, j = start;
  int temp = a[base];
  for (;j<base;j++) {
    if (a[j]<=temp) {
      swap(a[i], a[j]);
      i++;
    }
  }
  if (a[i] > a[base]) {
    swap(a[i], a[base]);
  }
  quickSort(a, start, i - 1);
  quickSort(a, i + 1, base);
}
void swap(int &a, int&b) {
  if (a == b) {
  }
  else {
    a = a + b;
    b = a - b;
    a = a - b;
  }
  
}
vector<string> split(string s, const string pattern) {
  string::size_type pos;
  vector<string> result;
  s += pattern;
  unsigned int size = s.size();
  for (unsigned int i = 0; i < size; i++) {
    pos = s.find(pattern, i);
    if (pos < size) {
      string str = s.substr(i, pos - i);
      if (!str.empty()){
        result.push_back(str);
      }
      i = pos + pattern.size() - 1;

    }
  }
  return result;
}

以上是“c++怎么实现对输入数组进行快速排序”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联网站建设公司行业资讯频道!

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

分享文章:c++怎么实现对输入数组进行快速排序-创新互联
链接分享:https://www.cdcxhl.com/article4/csjcie.html

成都网站建设公司_创新互联,为您提供网站内链网站排名移动网站建设品牌网站制作定制开发微信公众号

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

营销型网站建设