加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c++实现对输入数组进行快速排序的示例(推荐)

发布时间:2020-12-16 05:09:44 所属栏目:百科 来源:网络整理
导读:废话不多说,直接上代码 #include "stdafx.h"#include iostream#include string#include vectorusing namespace std;void quickSort(vectorint void swap(int b);vectorstring split(string s,string seperator);int main() { string str; cout "please inpu

废话不多说,直接上代码

#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,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++实现对输入数组进行快速排序的示例(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程小技巧。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读