冒泡、选择和快速排序算法的C++实现
来源:互联网 发布:在linux部署禅道 编辑:程序博客网 时间:2024/06/01 17:06
冒泡、选择和快速排序算法的C++实现
#include <iostream>using namespace std;void print(int* pData, int count){for (int i = 0; i< count; i++) {cout << pData[i] << " ";}cout << endl;}//C++实现冒泡排序(升序)void BubbleSort(int* pData, int count){int temp;for (int i = 1; i < count; i++){ //每一轮选出 最大的for (int j = count - 1; j >= i; j--){if (pData[j-1] > pData[j]){temp = pData[j - 1];pData[j - 1] = pData[j];pData[j] = temp;}}cout<<"第"<<i<<"轮排序后:";print(pData, count);}}//C++实现冒泡排序(升序)void BubbleSort1(int a[],int size){int temp;for(int pass=1; pass<size; ++pass){ //每一轮选出 最大的for(int k=0; k<size-pass; ++k) {if(a[k]>a[k+1]){temp=a[k];a[k]=a[k+1];a[k+1]=temp; }}cout<<"第"<<pass<<"轮排序后:";for(int i=0;i<size;i++){cout<<a[i]<<","; }cout<<endl;}}//选择排序(升序)void SelectSort(int *a, int len){int k = 0;for (int i=0; i<len-1; i++){k = i;for (int j=i+1; j<len; j++){if (a[j]<a[k]){k = j;}}if (k!=i){swap(a[i], a[k]); }cout << "The "<< i <<" round:" << endl;print(a, len);cout << "----------------------------" << endl;}}//快速排序(升序) void quick_sort(int a[], int left, int right){if(left>right){//std::cout<<"left is bigger than right,please check"<<std::endl;return ;}int i = left;int j = right;int x = a[i];while(i<j){while(i<j && a[j]>x) //向前搜索{j--; }if(i<j){a[i] = a[j];i++;}while(i<j && a[i]<x) //向后搜索{i++;}if(i<j){a[j] = a[i];j--;}}a[i] = x;quick_sort(a, left, i-1);quick_sort(a, i+1, right);}int main(int argc, char *argv[]){int data[] = {10, 8, 9, 7, 4, 5};BubbleSort(data, 6);cout << "The BubbleSort result:" << endl;print(data, 6);cout<<std::endl;int data1[] = {10, 8, 9, 7, 4, 5};BubbleSort1(data1, 6);cout << "The BubbleSort1 result:" << endl;print(data1, 6);cout<<std::endl;int data2[] = {10, 8, 9, 7, 4, 5};SelectSort(data2,6);cout << "The SelectSort result:" << endl;print(data2, 6);cout<<std::endl;int a[] = {21,35,15 ,37,26,13,27,49,55,14}; cout<<"Before quick_sort: ";for(int i =0 ; i<10;i++){cout<<a[i]<<" ";}cout<<endl;quick_sort(a, 0, 9);cout<<"After quick_sort: ";for(int i =0 ; i<10;i++){cout<<a[i]<<" ";}cout<<endl;return 0;}
1 1
- 冒泡、选择和快速排序算法的C++实现
- 快速排序,冒泡排序,直接选择排序的算法实现
- Objective-C实现冒泡,选择,插入,快速排序算法
- c#实现冒泡、快速、选择和插入排序算法
- C 排序算法 (冒泡)(选择)|(插入)|(快速)
- 基于C语言的常见排序算法(冒泡,选择,快速)的实现
- 常见排序算法(冒泡,选择,快速)的C语言实现
- 常见排序算法(冒泡,选择,快速)的C语言实现
- 常见排序算法(冒泡,选择,快速)的C语言实现
- 常见排序算法(冒泡,选择,快速)的C语言实现
- 常见排序算法(冒泡,选择,快速)的C语言实现
- 常见排序算法(冒泡,选择,快速)的C语言实现【修正版】
- 常见排序算法(冒泡,选择,快速)的C语言实现
- 常见排序算法(冒泡,选择,快速)的C语言实现
- java实现冒泡、选择、快速排序算法
- java实现冒泡、选择、快速排序算法
- 快速排序算法和冒泡排序算法的java实现
- 选择排序&插入排序&冒泡排序&快速排序算法实现
- 轻松获取海量QQ号,一招包教包会!
- 反射常用函数
- Android string %1$s %1$d
- 最全的连接字符串参照
- ES6 Promise对象
- 冒泡、选择和快速排序算法的C++实现
- 机器学习实战5--Logistic回归
- 开发者最常用的8款Sublime text 3插件
- 安装git之后,桌面图片全部变成蓝色问号的标志,解决方案..
- Cornerstone “An error occurred and the operation could not be completed”
- 关于IBM bluemix的使用
- 《2015互联网安全年报》,移动端成重灾区,黑灰产日益成熟
- Struts2学习(一) 基础环境搭建与创建HelloWorld程序
- Android Sensor Framework