插入排序:

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

#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. 使用jquery实现省市二级列表

    这里讲用到 jquery 的  each  遍历方法  追加 节点或元素方法  append  appendTO   以及 remove 清除节点 <script> $(function( ...

  2. 利用ItextSharp产PDF完整操作

    记得上回有写到用C#操作Excel(.net 4.0) 很多朋友说推荐用NPOI,的确,用微软自带的操作execl会有很大的问题.客户的主机不愿意安装excel, 这时我才意识到用自带组件完全是不行的 ...

  3. [Usaco2010 Nov]Visiting Cows

    题目描述 经过了几周的辛苦工作,贝茜终于迎来了一个假期.作为奶牛群中最会社交的牛,她希望去拜访N(1<=N<=50000)个朋友.这些朋友被标号为1..N.这些奶牛有一个不同寻常的交通系统 ...

  4. tld自定义标签系列--使用body-content的作用--比较有用

    body-content的值有下面4种: <xsd:enumeration value="tagdependent"/> <xsd:enumeration val ...

  5. SQL 统计某一列出现的总和

    现有数据如上图所示,要求统计出日期相同的Count总数,并且加一列统计前面日期Count的总和 SELECT SUM([Count]) AS DayTotal, SUM(SUM([Count])) o ...

  6. C# 事件和Unity3D

    http://zijan.iteye.com/blog/871207 翻译自: http://www.everyday3d.com/blog/index.php/2010/10/04/c-events ...

  7. Bean的实例化--静态工厂

    1,创建实体类User package com.songyan.demo1; /** * 要创建的对象类 * @author sy * */ public class User { private S ...

  8. ylbtech-WelfareSystem(福利发放管理系统)-数据库设计

    ylbtech-DatabaseDesgin:ylbtech-WelfareSystem(福利发放管理系统)-数据库设计 1.A,数据库关系图(Database Diagram) 1.B,数据库设计脚 ...

  9. python2代码升级到python3工具

    python模块lib2to3(py2转py3自动化工具) Usage: 2to3 [options] file|dir ... Options: -h, --help show this help ...

  10. Python-使用Magellan进行数据匹配总结

    参考:http://www.biggorilla.org/zh-hans/walkt/ 使用Magellan进行数据匹配过程如下: 假设有两个数据源为A和B, A共有四列数据:(A_Column1,A ...