冒泡排序
来源:互联网 发布:白夜追凶国外知乎 编辑:程序博客网 时间:2024/06/06 10:38
//
// main.cpp
// Sorting
//
// Created by yanzhengqing on 12-12-6.
// Copyright (c) 2012年 yanzhengqing. All rights reserved.
#include <iostream>
using namespace std;
int input_array(intconst *p)
{
printf("please input the array numbers......\n");
for (uint i =0; i < 10;i++)
{
scanf("%d",p++);
}
return 0;
}
int output_array(intconst *p)
{
for (uint i =0; i < 10;i++)
{
printf("%d\t",*(p++) );
}
return 0;
}
/* 冒泡排序其属于快速排序范畴,快速排序是冒泡排序的改进
若初始为正序,则只需要进行一趟排序,在排序的过程中进行n-1次元素之间的比较
若初始为逆序,则需要进行n-1趟排序,进行n(n-1)/2次元素之间的比较
数据范例
21 32 43 22 56 87 65 49 76 10
第一趟: 21 32 22 43 56 65 49 76 10 87
第二趟: 21。。。。。。
*/
int Bubble_sort(int *a,int n)
{
int temp =0,l =1;
bool flag =false; //标记使用,当循环里没有变化时表示排序结束。
for(int i =1 ;i<=n;n--)
{
for(int j =1 ;j<n ;j++)
{
if(a[j-1]>a[j])
{
temp = a[j-1];
a[j-1] = a[j];
a[j] = temp;
flag =true;
}
}
if(!flag)
{
cout<<"bubble_sort最后一趟排序"<<endl;
output_array(a);
cout<<endl;
break;
}
else
{
cout<<"bubble_sort第~~"<<l<<"~~趟排序"<<endl;
output_array(a);
cout<<endl;
flag =false;
l++;
}
}
return 0;
}
int main(int argc,const char * argv[])
{
int array[10] = {0};
input_array(array);
Bubble_sort(array,sizeof(array)/sizeof(int));
return0;
}
******************************************************************************************************
输出实例:
please input the array numbers......
21
32
43
22
56
87
65
49
76
10
bubble_sort第~~1~~趟排序
2132 22 43 56 6549 76 10 87
bubble_sort第~~2~~趟排序
2122 32 43 56 4965 10 76 87
bubble_sort第~~3~~趟排序
2122 32 43 49 5610 65 76 87
bubble_sort第~~4~~趟排序
2122 32 43 49 1056 65 76 87
bubble_sort第~~5~~趟排序
2122 32 43 10 4956 65 76 87
bubble_sort第~~6~~趟排序
2122 32 10 43 4956 65 76 87
bubble_sort第~~7~~趟排序
2122 10 32 43 4956 65 76 87
bubble_sort第~~8~~趟排序
2110 22 32 43 4956 65 76 87
bubble_sort第~~9~~趟排序
1021 22 32 43 4956 65 76 87
bubble_sort最后一趟排序
1021 22 32 43 4956 65 76 87
冒泡排序比较简单,这里注意点就是加一个标志flag位防止已经成序的继续比较。
其他地方就没有什么可以深挖的了。
有高见望留言。。。。。。
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 计算给定两个日期间工作日
- jdk
- postgresql 不错的全文检索资料
- 企业实时通信解决方案
- jQuery封装的获取Url中的Get参数
- 冒泡排序
- JABC 操作
- Linux间共享:NFS的配置与挂载
- 国内主流业务流程(BPO)外包服务现状
- 在RedHat Server 5.4上安装YUM
- 设计模式学习-----状态模式
- SQL 连接 JOIN 例解。(左连接,右连接,全连接,内连接,交叉连接,自连接)
- uboot1.1.6——undefined reference to ‘raise’
- OD 中 监察器/inspector 的作用