优化版的冒泡排序

;优化版的冒泡排序,最好的情况为线性阶 ,最坏的情况为平方阶

;算法的最好情况,如一个拍好序列的数组那么做排序,那么就会有几行代码不会产生交换的情况

最坏的情况是全部都交换

;code

/*

此冒泡最好情况被优化为线性阶

最坏就是平方阶

*/

void bubble(int arr[3],int n)

{

int bChange=1,i=0,j=0;

for(i=0;i<n&&bChange==1;++i)//n次

{

bChange=0;

for(j=0;j<n;++j)//n*n次

{

if(arr[j]>arr[j+1])//最好的情况排好序一次也不用,最坏每次都交换

{

//arr[j] 保存异或值,利用 异或值得到另外的一个数

arr[j]=arr[j]^arr[j+1];

arr[j+1]=arr[j]^arr[j+1];

arr[j]=arr[j]^arr[j+1];

bChange=1;

}

}

}

}

int main()

{

int arr1[3]={1,2,3};

bubble(arr1,sizeof(arr1)/sizeof(arr1[0]));

return 0;

}

时间: 2024-10-18 21:27:21

优化版的冒泡排序的相关文章

POJ-2533最长上升子序列(DP+二分)(优化版)

Longest Ordered Subsequence Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 41944   Accepted: 18453 Description A numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let the subsequence of the given numeric sequence (a1, a2, ...

flask 大型教程项目优化版(1):Hello World

Hello World 作者背景 作者是一个使用多种语言开发复杂程序并且拥有十多年经验的软件工程师.作者第一次学习 Python 是在为一个 C++ 库创建绑定的时候. 除了 Python,作者曾经用 PHP, Ruby, Smalltalk 甚至 C++ 写过 web 应用.在所有这些中,Python/Flask 组合是作者认为最为自由的一种. 应用程序简介 作为本教程的一部分–我要开发的应用程序是一个极具特色的微博服务器,我称之为 microblog . 我会随着应用程序的不断地进展将涉及到

ADSafe净网大师3.5.1.910 绿色优化版

国内首款全方位广告智能拦截软件ADSafe,今天,ADSafe净网大师更新v3.5.1.910 正式版,这次修正了长时间运行导致的问题.另外据国外博客获悉口碑不错强大的奶牛V5也再开发阶段中了! 此绿色优化版,由zd423专注持续优化,免后续强制更新,无启动赞助弹窗.无多余按钮及应用推销,干净的感觉真好!ADsafe广告管家是国内最大的广告强力过滤软件,大色块.扁平化.卡片式的操作方式,提供更好交互体验.ADsafe净网大师能过滤不良信息.逛网站无骚扰.看视频不等待,还可保护上网隐私,防止用户信

jq实现点击表格无刷新修改数据,优化版

1 <!-------------------修改密码-------------------------- > 2 $("#pwd").live("click",function(){//① 3 $(this).parents("tr").find("#a_cannel").text("取消"); 4 user=$(this).parents("tr").find("

查找质数的算法优化版

package com.my.testPrimeNumber; import java.util.ArrayList; import java.util.List; public class PrimeNumber { public boolean isPrimeNum(int n) { //第一步过滤偶数,使范围减少一半 if(n==2) { return true; } else if(n%2==0) { return false; } //处理奇数,一个素数中不会有偶数因子,但是他的平方根

【C++】String类及其优化版的实现

#include<iostream> using namespace std; class String { public: String() { _ptr = new char[1]; _ptr[0] = 0; } String(const char* str) { _ptr = new char[strlen(str)+1]; strcpy(_ptr,str); } String(const String& str) { _ptr = new char[strlen(str._pt

搜狗拼音输入法 v8.5e 去广告精简优化版

搜狗拼音输入法8.5 正式版例行更新!最新字母代号为e,详细版本号v8.5.0.1322:新版颜文字大改版,优化智能模糊音.输入统计.搜狗拼音输入法是电脑装机必备软件,版本有传统版和智慧版之分,其打字超准.词库超大.速度飞快.外观漂亮,因此使得输入操作变得事半功倍.精简的版本用着舒适! zd423.大水牛:专注精简优化,彻底免升级更新,砍掉了多余功能.无微门户弹窗.无勋章相关推荐.无推广软件渣行为,无多余干扰提示,无多余进程驻留,可选安装个人中心和联网组件,让你安心舒适的打字!删除了云候选程序.

php+mysql分页优化版

效果图: 1 <table align="center" cellspacing="2"> 2 <?php 3 include('conn/conn2.php'); 4 $pagesize=10; 5 $url=$_SERVER["REQUEST_URI"];//取当前url路径 6 $url=parse_url($url); //查询当前路径所以值 7 $url=$url[path];//查询当前路径path的值 8 9 $n

键值转换--复杂按键事件识别程序(链接层-优化版)

复杂按键事件识别程序(链接层-优化版) 本文相对于键值转换--复杂按键事件识别程序(链接层)文章中所述的按键事件转换程序进行优化(原来的代码太多,太杂,不易于维护). 优点:代码简洁,易于修改和阅读. 缺点:无法区分某一特殊按键在不同的系统状态下的按键时间(比如同一个键在不同的情况下可以长按3s或则5s),连按和长按不能同时存在(也可以加条件进行区分). 复杂按键包括多个按键的单按事件.长按事件.连按事件.组合按键事件等... 单按事件在按下键松开时判定,其它按键情况在达到规定的时间后触发相应按