插入排序:

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

#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. 洛谷 P1064 金明的预算方案【有依赖的分组背包】

    题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:"你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱 ...

  2. HashSet、LinkedHashSet和TreeSet

    关键技术: HashSet采用散列函数对元素进行排序,是专门为快速查询而设计的.存入HashSet的对象必须定义hashCode方法. TreeSet采用红黑树的数据结构进行排序元素,使用它可以从Se ...

  3. 洛谷 P4212 外太空旅行

    题目描述 在人类的触角伸向银河系的边缘之际,普通人上太空旅行已经变得稀松平常了.某理科试验班有n个人,现在班主任要从中选出尽量多的人去参加一次太空旅行活动. 可是n名同学并不是和平相处的.有的人,比如 ...

  4. POJ 2155 Matrix(树状数组+容斥原理)

    [题目链接] http://poj.org/problem?id=2155 [题目大意] 要求维护两个操作,矩阵翻转和单点查询 [题解] 树状数组可以处理前缀和问题,前缀之间进行容斥即可得到答案. [ ...

  5. C++指针、引用知多少?

    上午搞了一个小程序,test半天都没有得到想要的结构,原来是递归的时候没有注意的循环的问题,结果直接死循环了.催了...看来当程序出现问题的时候,首先要整理的是算法思路是否有问题,其次是算法的实现,是 ...

  6. 四. Java继承和多态10. Java Object类

    Object 类位于 java.lang 包中,是所有 Java 类的祖先,Java 中的每个类都由它扩展而来. 定义Java类时如果没有显示的指明父类,那么就默认继承了 Object 类.例如: p ...

  7. 【转载】uboot的工具mkimage使用方法

    uboot源代码的tools/目录下有mkimage工具,这个工具可以用来制作不压缩或者压缩的多种可启动映象文件. mkimage在制作映象文件的时候,是在原来的可执行映象文件的前面加上一个0x40字 ...

  8. Uprobes: userspace probes >= Linux 3.5

    https://lwn.net/Articles/499190/ https://github.com/andreoli/fulltrace Prominent features in Linux 3 ...

  9. 在SQL Server中查看对象依赖关系

    原文 在SQL Server中查看对象依赖关系 Viewing object dependencies in SQL Server   Deleting or changing objects may ...

  10. UBI文件系统简介

    转:http://www.embedu.org/Column/Column102.htm 在linux-2.6.27以前,谈到Flash文件系统,大家很多时候多会想到cramfs.jffs2.yaff ...