博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构-冒泡排序
阅读量:4581 次
发布时间:2019-06-09

本文共 1470 字,大约阅读时间需要 4 分钟。

冒泡排序的思想:

      依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。

代码:

 

#include<stdio.h>
int main()
{
 
int a[
100];
 
int n,temp,i,j;
 printf(
"
Enter n:
");
 scanf(
"
%d
",&n);
 printf(
"
Enter %d integer:
",n);
 
for(i=
0;i<n;i++)
 scanf(
"
%d
",&a[i]);
 
 
for(i=
1;i<n;i++){
    
for(j=
0;j<n-i;j++)
    {
    
if(a[j]>a[j+
1])
    {
     temp=a[j];
     a[j]=a[j+
1];
     a[j+
1]=temp;
    }
 }
 }
    printf(
"
After sorted:
");
    
for(i=
0;i<n;i++)
    printf(
"
%4d
",a[i]);
    printf(
"
\n
");
    
    
return 
0;
}
/*
输出示例:
Enter n:8
Enter 8 integer:1 5 5 82 45 95 15 43
After sorted:  1  5  5 15 43 45 82 95
请按任意键继续. . .
Enter n:10
Enter 10 integer:25 1 52 69 5 96 -77 59 123 -960
After sorted: -960  -77    1    5   25   52   59   69   96  123
请按任意键继续. . .
 
*/

 

2.算法改进(如果某一趟排序数据没有发生交换,说明序列当前已经是排好序了)。

#include<stdio.h>
int main()
{
    
int a[
10];
    
int i,j,tem;
    
bool bchange = 
false;
    printf(
"
Please input 10 numbers:\n
");
    
for(i = 
0;i<
10;i++)
    {
        scanf(
"
%d
",&a[i]);
    }
    
//
Bubble
    
for(i=
0;i<
9;i++)
    {
        
for(j=
0;j<
9-i;j++)
        {
            bchange = 
false;
            
if(a[j]>a[j+
1])
            {
                tem = a[j];
                a[j] = a[j+
1];
                a[j+
1] = tem;
                bchange = 
true;
            }
        }
        
if(!bchange)
//
not change
        
break;
    }
    printf(
"
The sorted numbers:\n
");
    
for(i = 
0;i<
10;i++)
    {
        printf(
"
%3d
",a[i]);        
    }
        printf(
"
\n
");
        
return 
0;

} 

转载于:https://www.cnblogs.com/lanshy/archive/2013/03/24/2978240.html

你可能感兴趣的文章
jzoj100048. 紧急撤离
查看>>
令人疑惑的 std::remove 算法
查看>>
Int..的范围
查看>>
HDU 2585 [Hotel]字符串递归处理
查看>>
ffmpeg 编码h264 profile如何设置为baseline的问题
查看>>
CSharper 学Quick-Cocos2d-X (一) 开发环境的搭建
查看>>
PoolThreadCache
查看>>
使grub4dos引导启动linux
查看>>
P2597 [ZJOI2012]灾难
查看>>
LeetCode--LinkedList--206. Reverse Linked List(Easy)
查看>>
最短路径
查看>>
Console-算法[for,if]-一水仙花数(Water flower)
查看>>
IntelliJ-IDEA和Git、GitHub、Gitlab的使用
查看>>
Request——Node世界中被依赖最多的库No.2
查看>>
【共读Primer】26.[4.6]成员访问运算符 Page133
查看>>
8、OpenCV Python 图像直方图
查看>>
判断远程主机是否存在某个文件
查看>>
[SDOI2011]工作安排
查看>>
block change tracking buffer space
查看>>
简单API练手:(1)复制自身程序到windows目录和系统目录下;(2)获得系统的相关信息。...
查看>>