我---对‘数据结构’中‘排序’的理解 ---------1:冒泡排序
来源:互联网 发布:windows刷新dns缓存 编辑:程序博客网 时间:2024/05/20 05:29
我对数据结构中“排序”的理解 1:冒泡排序
1. 排序就是排序。不是边输入边排序。
2. 要把问题拆开。分成先输入后排序。
3. 对存在的数组。进行排序
4. 关心的是排序算法
以上 4 点大同小异,强调注重算法。。。
5. 所有算法都省略了以下初始化;
————————————————————————————————
int a[10],i,j,k;
printf("Please input 10 numbers for sort:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
————————————————————————————————
A. 冒泡排序
百度百科:
冒泡排序,是指计算机的一种排序方法,它的时间复杂度为 O ( n^2 ),虽然不及堆排序、快速排序的 O ( nlogn ,底数为 2 ),但是有两个优点: 1. “编程复杂度”很低,很容易写出代码; 2. 具有稳定性,这里的稳定性是指原序列中相同元素的相对顺序仍然保持到排序后的序列,而堆排序、快速排序均不具有稳定性。不过,一路、二路归并排序、不平衡二叉树排序的速度均比冒泡排序快,且具有稳定性,但速度不及堆排序、快速排序。冒泡排序是经过 n-1 趟子排序完成的,第 i 趟子排序从第 1 个数至第 n-i 个数,若第 i 个数比后一个数大(则升序,小则降序)则交换两数
for(i=0;i<9;i++)// 外层循环,遍历数组(最后一个数无需比较)
{
for(j=0;j<10-i;j++){// 仍从第一对数开始比较(因为可能由于第 2 个数和第 3 个数的交换,使得第 1 个数不再小于第 2 个数)
// 第一次比较后,最后一个数必是最大的,以后无需与最后一个比较。
// 同理,第二次后,倒数第二个也是第二大的
if(a[j]>a[j+1]){// 如果前者比后者大,交换
k=a[j+1];
a[j+1]=a[k];
a[j]=k;
}
}
————————————————————————此图摘自百度百科
- 我---对‘数据结构’中‘排序’的理解 ---------1:冒泡排序
- 005-我对冒泡排序的理解
- 我---对‘数据结构’中‘排序’的理解 ---------2:选择排序--(一)简单选择排序
- 我---对‘数据结构’中‘排序’的理解 ---------3:选择排序--(二)堆排序
- 对冒泡排序的理解
- 自我对冒泡排序以及对快速排序的理解
- 谈谈对冒泡排序的理解
- 对冒泡排序的理解与实现
- 冒泡排序的理解
- 关于数据结构中冒泡排序和选择排序的总结
- 我对快速排序的理解。
- 我对插入排序算法的理解。
- 我对希尔排序的理解
- 我对归并排序的理解
- 对冒泡排序中for循环嵌套的理解(BubbleSort)
- 冒泡排序的简单理解
- java冒泡排序的理解
- 好记好理解的冒泡排序
- CSDN
- ServletContextListener 介绍
- 我对 xmlschema 的 targetNamespace 、xmlns、include、import的理解
- 图片居中问题---适用于主页的背景图片
- URL
- 我---对‘数据结构’中‘排序’的理解 ---------1:冒泡排序
- 更新rar自解压文件的命令注释
- Annotation
- c++ 重载New操作符
- 解析“extern”
- servlet读取xml格式的post数据
- jbpm4.0-RepositoryService分析
- FlashTracer开发flash必备的firefox插件
- NoSQL学习笔记(1)