插入排序:

就像摸牌,摸一张插进去,找一个哨兵。从第二个開始,和前一个比較。小的话前移一位。

#include <iostream>
#include<stdlib.h> using namespace std;
#define N 4 //不能加分号结束 class sort
{
public:
void insertSort(int a[],int n);
sort()
{
cout<<"Start"<<endl;
}
sort(const sort&s);
private: };
void sort::insertSort(int a[],int n)
{
int i=1,j=0,key;//设两个变量值的目的是内外变化。假设仅仅有一个内外的变化会产生影响
while(i<n) //外循环
{
key=a[i];//把第几个拿出来。和前边的对照;
j=i-1; //前边的那个值
while(key<a[j]&&j>=0) //内循环
{
a[j+1]=a[j]; //把当前值改成前一个值
j--; //位置前移一位
}
a[j+1]=key; //比較成功之后。把哨兵插到当前位置,注意用的是j
i++; //转到下次循环
}
cout<<"-----------\n ";
for(int i=0;i<n;i++)
{
cout<<a[i];
}
}
sort::sort(const sort&s)
{
cout<<"news\n";
}
int main()
{
sort s;
//sort b=s;
int a[N];
cout<<"lease input arr.";
for(int i=0;i<N;i++)
{
cin>>a[i];
}
cout<<"shuchu wei";
for(int i=0;i<N;i++)
{
cout<<a[i]<<endl;
}
s.insertSort(a,N); return 0;
};
</pre><p><span style="font-family:SimHei; font-size:24px">冒泡排序:</span></p><p><span style="font-family:SimHei"></span></p><pre name="code" class="html"><span style="font-size:14px;">#include <iostream>
#include<stdlib.h> using namespace std;
#define N 4 //不能加分号结束 class sort
{
public:
void insertSort(int a[],int n);
sort()
{
cout<<"Start"<<endl;
}
sort(const sort&s);
void bubblesort(int a[],int n);
private:
int c;
};
void sort::insertSort(int a[],int n)
{
int i=1,j=0,key;//设两个变量值的目的是内外变化,假设仅仅有一个内外的变化会产生影响
while(i<n) //外循环
{
key=a[i];//把第几个拿出来。和前边的对照。
j=i-1; //前边的那个值
while(key<a[j]&&j>=0) //内循环
{
a[j+1]=a[j]; //把当前值改成前一个值
j--; //位置前移一位
}
a[j+1]=key; //比較成功之后,把哨兵插到当前位置,注意用的是j
i++; //转到下次循环
}
cout<<"-----insertsort------\n ";
for(int i=0;i<n;i++)
{
cout<<a[i];
}
cout<<endl;
}
void sort::bubblesort(int a[],int n)
{
int i=0,j=n;
for(;i<n-1;i++)//外层循环
{
for(;j>i;j--)//内层循环,从最后一个開始向上冒泡。冒泡次数逐渐减一
{
if(a[j]<a[j-1])//倒数開始,两个数进行比較,下边是交换过程
{
int temp=a[j-1];
a[j-1]=a[j];
a[j]=temp;
}
}
}
cout<<"-----bubblesort------\n ";
for(int i=0;i<n;i++)
{
cout<<a[i];
}
cout<<endl;
}
sort::sort(const sort&s)
{
cout<<"news\n";
}
int main()
{
sort s;
//sort b=s;
int a[N];
cout<<"lease input arr."; for(int i=0;i<N;i++)
{
cin>>a[i];
}
cout<<"shuchu wei";
for(int i=0;i<N;i++)
{
cout<<a[i];
}
cout<<endl; s.insertSort(a,N);
s.bubblesort(a,N); return 0;
};</span><span style="font-size:24px;">
</span>

其它算法待续....

排序算法 C++代码实现的更多相关文章

  1. Python实现各种排序算法的代码示例总结

    Python实现各种排序算法的代码示例总结 作者:Donald Knuth 字体:[增加 减小] 类型:转载 时间:2015-12-11我要评论 这篇文章主要介绍了Python实现各种排序算法的代码示 ...

  2. 排序算法Java代码实现(一)—— 选择排序

    以下几篇随笔都是记录的我实现八大排序的代码,主要是贴出代码吧,讲解什么的都没有,主要是为了方便我自己复习,哈哈,如果看不明白,也不要说我坑哦! 本片分为两部分代码: 常用方法封装 排序算法里需要频繁使 ...

  3. Java实现八种排序算法(代码详细解释)

    经过一个多星期的学习.收集.整理,又对数据结构的八大排序算法进行了一个回顾,在测试过程中也遇到了很多问题,解决了很多问题.代码全都是经过小弟运行的,如果有问题,希望能给小弟提出来,共同进步. 参考:数 ...

  4. php四种排序算法实现代码

    分享php排序的四种算法与代码. 冒泡:function bubble_sort($arr){ $num = count($arr); for($i=0;$i<$num;$i++){ for($ ...

  5. 排序算法Java代码实现(三)—— 插入排序 和 希尔排序

    因为希尔排序的核心思想是插入排序,所以本篇将两篇排序一起记录 本篇内容: 插入排序 希尔排序 (一)插入排序 算法思想: 把n个待排序的元素看成一个有序表和一个无序表,开始时有序表中只有一个元素,无序 ...

  6. 八大排序算法java代码

    1.冒泡排序 public static void main(String[] args) { int[] arr = {1,4,2,9,5,7,6}; System.out.println(&quo ...

  7. 八大排序算法C++代码实现

    八大排序算法 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存. 我们这里说说八大排序就是内部排序 ...

  8. 排序算法Java代码实现(四)—— 归并排序

    本篇内容: 归并排序 归并排序 算法思想: 将两个或两个以上的有序表合并成一个新的有序表, 即把待排序序列分成若干个子序列,每个子序列是有序的,然后在把有序子序列合并为整体有序序列. 此算法分为两步: ...

  9. 排序算法Java代码实现(六)—— 堆排序

    本片内容: 堆排序 堆排序 最大堆: 二叉堆是完全二叉树或者是近似完全二叉树, 当父结点的键值总是大于或等于任何一个子节点的键值时为最大堆.(父节点大于任何一个子节点) 算法思想: 把n个元素建立最大 ...

  10. 排序算法Java代码实现(五)—— 快速排序

    本篇内容: 快速排序 快速排序 算法思想: 通过一趟排序将要排序的数据分割成独立的两部分, 其中一部分的所有数据都比另外一部分的所有数据都要小, 然后再按此方法对这两部分数据分别进行快速排序, 整个排 ...

随机推荐

  1. asp.net生成word文档服务器配置

    一.asp.net生成word文档,布署到正式的服务器上就出现           错误:System.Runtime.InteropServices.COMException (0x800A1098 ...

  2. 洛谷 P1094 纪念品分组【贪心/双指针/最少多少组合法不要求连续的两两捆绑】

    题目描述 元旦快到了,校学生会让乐乐负责新年晚会的纪念品发放工作.为使得参加晚会的同学所获得 的纪念品价值相对均衡,他要把购来的纪念品根据价格进行分组,但每组最多只能包括两件纪念品, 并且每组纪念品的 ...

  3. PyCharm配置gitHub远程仓储

    在一个团队里,编码不能是闭门造车,git学起来: 1. GIT的基本介绍.安装及使用教程- @廖雪峰 2. pycharm配置github远程仓储- @谢小小XH

  4. 「kuangbin带你飞」专题二十 斜率DP

    layout: post title: 「kuangbin带你飞」专题二十 斜率DP author: "luowentaoaa" catalog: true tags: mathj ...

  5. 洛谷—— P1022 计算器的改良

    P1022 计算器的改良 题目背景 NCL是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能.实验室将这个任务交给了 ...

  6. Extjs Ext.grid.column.Column 隐藏显示列

    1.根据字段名字 grid.down("gridcolumn[dataIndex=PLAN_QTY]").show();//hide() 2.根据列号 grid.columns[1 ...

  7. centos iptables关于ping

    配置iptables策略后,一般来说INPUT都是DROP然后配置需要通过的 当执行: iptables -P INPUT DROP 后,机器就不能被ping通了! 因为icmp没有添加到规则中! 于 ...

  8. K均值与C均值区别

    k均值聚类:---------一种硬聚类算法,隶属度只有两个取值0或1,提出的基本根据是“类内误差平方和最小化”准则: 模糊的c均值聚类算法:-------- 一种模糊聚类算法,是k均值聚类算法的推广 ...

  9. 在Android App中集成Google登录

    技术文章 来源:码农网 发布:2016-09-19 浏览:194 摘要:今天,几乎所有的web和移动app都自带谷歌和Facebook登录,这对app开发者和用户来说是一个非常有用的功能,因为几乎每个 ...

  10. jq和js中click 事件的几种方式总结和click事件的累加问题解决办法

     1:常见的三种绑定click事件: 第一种:$("#click").click(function(){ alert("Hello World  click") ...