简单排序算法:

  • 冒泡排序
  • 插入排序
  • 选择排序

.h代码:

//
// SortClass.h
// sort and selection
//
// Created by wasdns on 16/10/8.
// Copyright © 2016年 wasdns. All rights reserved.
// #ifndef SortClass_h
#define SortClass_h class Array { private:
int *a;
int n; public:
Array(int a = 0):n(a){}; void Initial(int n); //数组初始化 void SelectSort(); //选择排序 void BubbleSort(); //冒泡排序 void InsertSort(); //插入排序 void PrintArray(); //输出数组
}; #endif /* SortClass_h */

.cpp代码:

//
// Implementation.cpp
// sort and selection
//
// Created by wasdns on 16/10/8.
// Copyright © 2016年 wasdns. All rights reserved.
// #include <stdio.h>
#include <iostream>
#include <cstdlib>
#include "SortClass.h"
using namespace std; /*
* 函数名称:SwapNum
* 函数参数:整形指针p, 交换位置l,交换位置r
* 函数目的:交换*(p+l)与*(p+r)
*/
void SwapNum(int* p, int l, int r) { int t;
t = *(p + l);
*(p + l) = *(p + r);
*(p + r) = t;
} /*
* 函数名称:Initial
* 函数参数:数组元素个数num
* 函数目的:初始化,并输入数组元素的值
*/
void Array::Initial(int num) { int i; n = num; a = (int*)malloc(num); for (i = 1; i <= n; i++) {
cin >> *(a + i);
}
} /*
* 函数名称:PrintArray
* 函数目的:输出数组中的所有元素
*/
void Array::PrintArray() { for (int i = 1; i <= n; i++) {
cout << *(a + i) << " ";
}
cout << endl;
} /*
* 冒泡排序实现:
*/
void Array::BubbleSort() { int i, j; for (i = n; i > 1; i--) {
for (j = 1; j < i; j++) {
if (*(a + j) > *(a + j + 1)) {
SwapNum(a, j, j+1);
}
}
}
} /*
* 插入排序实现:
*/
void Array::InsertSort() { int i, j; for (i = 2; i <= n; i++) { int turn = i; for (j = i - 1; j >= 1; j--) { if (*(a + j) > *(a + turn)) {
SwapNum(a, j, turn);
turn = j;
}
else break;
}
} } /*
* 选择排序实现:
*/
void Array::SelectSort() { int i, j; for (i = 1; i <= n; i++) { int k = i;
for (j = i + 1; j <= n; j++) {
if (*(a + j) < *(a + k)) k = j;
} if (k != i) SwapNum(a, i, k);
} }

2016/10/8

简单排序算法 C++类实现的更多相关文章

  1. 简单排序算法设计(Java)

    总共有八种排序算法,还是慢慢看吧 1.简单排序算法 简单排序算法就是设置标兵,逐个比较数,然后查找插入位置,插入 public static void p(int[] a){ for(int i=0; ...

  2. 用javascript实现简单排序算法

    声明:本文为原创文章,如需转载,请注明来源WAxes,谢谢! 本文为楼主自己的学习记录文章,若有不当之处请斧正. 本文主要记录排序算法 [冒泡排序] 感觉这个是最简单的排序算法了.直接引用维基百科里的 ...

  3. python实现简单排序算法

    算法 递归两个特点: 调用自身 有穷调用 计算规模越来越小,直至最后结束 用装饰器修饰一个递归函数时会出现问题,这个问题产生的原因是递归的函数也不停的使用装饰器.解决方法是,只让装饰器调用一次即可,那 ...

  4. js的几种简单排序算法及其效率实测

    function swap(arr,index1,index2){ var t = arr[index1]; arr[index1] = arr[index2]; arr[index2] = t; } ...

  5. 三种简单排序算法(java实现)

    一.冒泡排序 算法思想:遍历待排序的数组,每次遍历比较相邻的两个元素,如果他们的排列顺序错误就交换他们的位置,经过一趟排序后,最大的元素会浮置数组的末端.重复操                   作 ...

  6. 几个简单排序算法的Python实现

    一,冒泡排序 冒泡排序我就不多讲了,大体上就是比较相邻的两个数,每次把较大的数沉底.流程图大致上如下: 图是截得别人的,只是说明一下,代码没有参看别人的,写的不好,有更好的写法可以一起探讨.下面是代码 ...

  7. JS三种简单排序算法

    冒泡排序:最简单.最慢.长度小于7的时候最优 插入排序:比冒泡要快比快速排序和希尔排序慢,数据量小的时候优势大 快速排序:速度很快  //js利用systemSort进行排序 systemSort: ...

  8. 用js实现简单排序算法

    一.冒泡排序 var arr1=[3,9,2,7,0,8,4]; for(var i=0;i<arr1.length;i++){ for(var j=i+1;j<arr1.length;j ...

  9. Java实现三大简单排序算法

    一.选择排序 public static void main(String[] args) { int[] nums = {1,2,8,4,6,7,3,6,4,9}; for (int i=0; i& ...

随机推荐

  1. NEXTDAY

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include "com_time ...

  2. hadoop中常见元素的解释

    secondarynamenode 图: secondarynamenode根据文件的的大小对namenode的编辑日志和镜像日志 进行合并. 光从字面上来理解,很容易让一些初学者先入为主的认为:Se ...

  3. 网易前端JavaScript编码规范

    在多年开发邮箱webmail过程中,网易邮箱前端团队积累了不少心得体会,我们开发了很多基础js库,实现了大量前端效果组件,开发了成熟的opoa框架以及api组件,在此向大家做一些分享.今天想先和大家聊 ...

  4. MQ的通讯模式

    1) 点对点通讯:点对点方式是最为传统和常见的通讯方式,它支持一对一.一对多.多对多.多对一等多种配置方式,支持树状.网状等多种拓扑结构. 2) 多点广播:MQ适用于不同类型的应用.其中重要的,也是正 ...

  5. poj 2559 单调栈 ***

    给出一系列的1*h的矩形,求矩形的最大面积. 如图: 题解链接:点我 #include <iostream> #include <cstdio> using namespace ...

  6. GDUT 校赛02 dp回文串

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABSkAAAIhCAIAAAAtmainAAAgAElEQVR4nOzdfaxkd33n+ZJacstqa3 ...

  7. struts2框架——从后台取得数据集,并在前台页面循环显示

    1.CourseBean.java public class CourseBean { private String f_courseId = ""; private String ...

  8. VS制作软件安装项目,版本控制和软件升级

    具体如何利用VS制作安装项目,请到我的CSDN地址下载超详细的文档(该文档来自网络) http://download.csdn.net/detail/u012373717/8723335 我要说的是版 ...

  9. ArcGIS for Android地图控件的5大常见操作

    GIS的开发中,什么时候都少不了地图操作.ArcGIS for Android中,地图组件就是MapView,MapView是基于Android中ViewGroup的一个类(参考),也是ArcGIS ...

  10. 编译x264 for ios

    Tested with: x264-snapshot-20140914-2245  我用的是x264-snapshot-20150813-2245.tar.bz2 Xcode 7 依赖gas-prep ...