冒泡排序
2016-04-12 19:33
344 查看
冒泡排序:
将序列中的第1个元素与第2个元素进行比较,若前者大于后者,则将第1个元素与第2个元素进行位置交换,否则不交换。
再将第2个元素与第3个元素进行比较,同样若前者大于后者,这将第2个元素与第3个元素进行交换,否则不交换。
一尺类推,直到将第n-1个元素与第n个元素进行比较为止。
因此可以发现,只需要交换n-1次就可。
用冒泡排序,从小到大排序
#include<stdio.h>
#include<iostream>
using namespace std;
void bubblesort(int k[], int n) //n为数组k中的元素个数-1
{
int i, j, temp, flag=1;
for (i = 0; i < n && flag==1; i++)
{
flag = 0;
for (j = 0; j < n - i; j++)
{
if (k[j] > k[j + 1])
{
temp = k[j+1];
k[j + 1] = k[j];
k[j] = temp;
flag = 1;
}
}
}
}
int main()
{
int i, a[10] = { 2,5,6,3,7,8,0,9,12,1 };
cout << "the orginal data array is" << endl;
for (i = 0; i < 10; i++)
cout << a[i] << " ";
cout << endl;
bubblesort(a, 9);
cout << "the result data array is" << endl;
for (i = 0; i < 10; i++)
cout << a[i] << " ";
cout << endl;
return 0;
}
将序列中的第1个元素与第2个元素进行比较,若前者大于后者,则将第1个元素与第2个元素进行位置交换,否则不交换。
再将第2个元素与第3个元素进行比较,同样若前者大于后者,这将第2个元素与第3个元素进行交换,否则不交换。
一尺类推,直到将第n-1个元素与第n个元素进行比较为止。
因此可以发现,只需要交换n-1次就可。
用冒泡排序,从小到大排序
#include<stdio.h>
#include<iostream>
using namespace std;
void bubblesort(int k[], int n) //n为数组k中的元素个数-1
{
int i, j, temp, flag=1;
for (i = 0; i < n && flag==1; i++)
{
flag = 0;
for (j = 0; j < n - i; j++)
{
if (k[j] > k[j + 1])
{
temp = k[j+1];
k[j + 1] = k[j];
k[j] = temp;
flag = 1;
}
}
}
}
int main()
{
int i, a[10] = { 2,5,6,3,7,8,0,9,12,1 };
cout << "the orginal data array is" << endl;
for (i = 0; i < 10; i++)
cout << a[i] << " ";
cout << endl;
bubblesort(a, 9);
cout << "the result data array is" << endl;
for (i = 0; i < 10; i++)
cout << a[i] << " ";
cout << endl;
return 0;
}
相关文章推荐
- Jquery-window.onload与$(document).ready()的对比
- C++上机作业
- c++实验三-个人所得税计算器
- bzoj:4241: 历史研究
- 嵌入式 hi3518平台获取网关
- C语言(undefined behavior)未定义-序
- 设计模式(1)之简单工厂模式
- 读书笔记—Activity的生命周期和启动模式
- 第六周 项目1-分数类的雏形
- java数据结构和算法目录(持续更新中)
- 虚幻4 主线程一直向渲染线程发送Task
- 《linux内核分析》第八周作业:进程调度的时机和进程切换
- 第一届CCF计算机软件能力认证(一二两题)
- ACM内部函数--数学问题--任意进制转换
- 嵌入式 hi3518平台增加路由代码
- VR外包团队:VR和AR技术已经红得发紫
- 2016去哪儿编程题:乘坐公交
- Gradle入门
- 第6周项目1-分数类的雏形(3)
- 创建一个ActionSheet