c++算法联系,冒泡排序,bubble sort,插入排序,insert sort,
#include <iostream.h>
#define MAX 100
void dispaly(int a[],int n)
{
for(int i=0;i<n;i++)
{
cout<<"a["<<i<<"]="<<a[i]<<" ";
}
cout<<endl;
}
// bubble sort 冒泡排序
void bubblesort(int a[],int n)
{
int i,j;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
{
if(a[j]>a[j+1])
{
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
dispaly(a,n);
}
}
//insert sort 插入排序
void insertSort(int a[],int n)
{
for(int i=1;i<n;i++)
{
//for(int j=i;j>0 &&a[j]<a[j-1];j--)
{
// int temp=a[j-1];
// a[j-1]=a[j];
// a[j]=temp;
}
for(int j=0;j<i &&a[i]<a[i-j-1];j++)
{
int temp=a[j-1];
a[j-1]=a[j];
a[j]=temp;
}
dispaly(a,n);
}
}
void selectSort(int a[],int n)
{
for(int i=0;i<n;i++)
{
int min=a[i];
int index=i;
for(int j=i;j<n-1;j++)
{
if(min>a[j+1])
{
min=a[j+1];
index=j+1;
}
}
int temp=a[i];
a[i]=min;
a[index]=temp;
}
/*
for(int i=0;i<n;i++)
{
int index=i;
for(int j=i;j<n-1;j++)
{
if(a[index]>a[j+1])
{
index=j+1;
}
}
int temp=a[i];
a[i]=a[index];
a[index]=temp;
}
*/
}
int main ()
{
int a[MAX],i;
for(i=0;i<MAX;i++)
{
cin>>a[i];
if(a[i]==-0)
break;
}
//dispaly(a,i);
//cout<<"================start sort=================="<<endl;
//bubblesort(a,i);
//cout<<"================result======================"<<endl;
//dispaly(a,i);
//insertSort(a,i);
selectSort(a,i);
dispaly(a,i);
return 0;
}
c++算法联系,冒泡排序,bubble sort,插入排序,insert sort,的更多相关文章
- Java中的经典算法之冒泡排序(Bubble Sort)
Java中的经典算法之冒泡排序(Bubble Sort) 神话丿小王子的博客主页 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一 ...
- java排序算法之冒泡排序(Bubble Sort)
java排序算法之冒泡排序(Bubble Sort) 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一趟:首先比较第1个和第2个数 ...
- 【排序算法】冒泡排序(Bubble Sort)
0. 说明 参考 维基百科中的冒泡排序 冒泡排序 (Bubble Sort) 是与插入排序拥有相等的执行时间,但是两种算法在需要的交换次数却很大地不同. 在最坏的情况,冒泡排序需要 O(n2) 次交 ...
- 快速排序算法回顾 --冒泡排序Bubble Sort和快速排序Quick Sort(Python实现)
冒泡排序的过程是首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序,则将两个记录交换,然后比较第二个记录和第三个记录的关键字.以此类推,直至第n-1个记录和第n个记录的关键字进行过比较为止 ...
- c#经典算法之冒泡排序(Bubble Sort)
转载于:https://www.cnblogs.com/shen-hua/p/5422676.html 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面, ...
- 分享知识-快乐自己:Java中的经典算法之冒泡排序(Bubble Sort)
原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后.然后比较第2个数和第3个数,将 ...
- 基础算法之冒泡排序Bubble Sort
原理 将相邻的数据两两进行比较,按照从小到大或者从大到小的顺序进行位置交换,这样一趟过去后,最大或最小的数字被交换到了最后一位,然后从头开始再次进行两两比较交换,直到倒数第二位时结束.按照此规则,若干 ...
- 算法:冒泡排序(Bubble Sort)、插入排序(Insertion Sort)和选择排序(Selection Sort)总结
背景 这两天温习了 5 中排序算法,之前也都看过它们的实现,因为没有深入分析的缘故,一直记不住谁是谁,本文就记录一下我学习的一些心得. 三种排序算法可以总结为如下: 都将数组分为已排序部分和未排序部分 ...
- [算法] 冒泡排序 Bubble Sort
冒泡排序(Bubble Sort,台湾另外一种译名为:泡沫排序)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没 ...
随机推荐
- POJ 3177 Redundant Paths 边双(重边)缩点
分析:边双缩点后,消环变树,然后答案就是所有叶子结点(即度为1的点)相连,为(sum+1)/2; 注:此题有坑,踩踩更健康,普通边双缩短默认没有无向图没有重边,但是这道题是有的 我们看,low数组是我 ...
- Python脚本控制的WebDriver 常用操作 <二十一> 执行JS
测试用例场景 如果你熟悉js的话,那么使用webdriver执行js就是一件很高效的事情了.在webdriver脚本中直接执行js的好处很多,这里就不一一枚举了. webdriver提供了execut ...
- [GRYZ2015]快排练习
用快排完成n(n<=100)个人年龄的从小到大的排序,要求出生年相同的按月排. 输入:第一行n个人 2到n+1行出生 年 月(1992 9) 输出:年龄的从小到大的排序. type ss=r ...
- Leetcode OJ : Repeated DNA Sequences hash python solution
Total Accepted: 3790 Total Submissions: 21072 All DNA is composed of a series of nucleotides abb ...
- uvalive 4589 Asteroids
题意:给两个凸包,凸包能旋转,求凸包重心之间的最短距离. 思路:显然两个凸包贴在一起时,距离最短.所以,先求重心,再求重心到各个面的最短距离. 三维凸包+重心求法 重心求法:在凸包内,任意枚举一点,在 ...
- 【转载】locate命令的使用
[说明]转载自 http://www.cnblogs.com/flysnail/archive/2012/05/16/2504266.html 使用locate命令,遇到了这样的情况:当前目录下有一个 ...
- 很好用的mybatis分页解决方案
分页如果写在SQL脚本中,将会大大影响我们后续数据库的迁移难度.mybatis的分页一般是自己实现一个mybatis的拦截器,然后根据某些特定的条件开启分页,对原有SQL进行改造. 正在我对mybat ...
- A Tour of Go Map literals
Map literals are like struct literals, but the keys are required. package main import "fmt" ...
- hdu 2716 Message Decowding
Message Decowding Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- jquery foreach
<form id="input_iForm" action="${pageContext.request.contextPath}/transfer/input_s ...