冒泡排序算法 C++和PHP达到
效率最低的算法。
在这一点,最后的元素应该会是最大的数。
所以。假设两个元素相等,我想你是不会再无聊 地把他们俩交换一下的。假设两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以同样元素的前后顺序并没有改变, 所以冒泡排序是一种稳定排序算法。
<?php
$n = 8;
$min = 1;
$max = 100;
$data = createData($n, $min, $max);
echo "随机生成数组:";
print_r($data);
echo "<br />";
bubble_sort($data, $n); //生成一个随机数组成的不反复数组
function createData($n, $min, $max){
$bigarr = range($min, $max);
$arrkey = array_rand($bigarr, $n); //返回键名
for($i=0; $i<count($arrkey); $i++){
$arr[] = $bigarr[$arrkey[$i]];
}
return $arr;
} //冒泡排序函数
function bubble_sort($data, $n)
{
$flag = 0;
for($i=0; $i<$n-1; $i++){
for($j=0; $j<$n-$i-1; $j++){
if($data[$j+1] < $data[$j]){
$flag = 1;
$temp = $data[$j];
$data[$j] = $data[$j+1];
$data[$j+1] = $temp;
}
}
if (!$flag){
break;
}
$flag = 0;
echo "排序过程 ".($i+1)." 步:";
print_r($data);
echo "<br/>";
}
echo "排序后的结果:";
print_r($data);
}
?>
#include<iostream>
#include<stdlib.h>
#include<time.h>
using namespace std;
int createData(int arr[], int n, int min, int max);
void bubble_sort(int *a, int n);
int main()
{
int arr[100];
int n=6;
int min=2;
int max=12;
createData(arr, n, min, max);
for (int i=0; i<n; i++)
cout << arr[i] << " ";
cout << endl;
bubble_sort(arr, n);
for (int j=0; j<n; j++)
cout << arr[j] << " ";
cout << endl;
return 1;
}
//生成一个随机数组成的不反复数组
int createData(int arr[], int n, int min, int max)
{
srand(time(NULL));
int i,j,flag;
for(i=0; i<n; i++){
do{
int num = min + rand()%(max-min+1);
arr[i] = num;
flag = 0;
for(j=0; j<i; j++){
if( arr[i] == arr[j])
flag = 1;
}
}while(flag);
}
return 1;
}
//冒泡排序函数
void bubble_sort(int *a, int n)
{
bool flag = true;
int k = n;
while(flag)
{
flag = false;
for(int i=1; i<k; i++)
{
if(a[i-1] > a[i])
{
int tmp = a[i];
a[i] = a[i-1];
a[i-1] = tmp;
flag = true;
}
}
k--;
}
}
版权声明:本文博主原创文章。博客,未经同意不得转载。
冒泡排序算法 C++和PHP达到的更多相关文章
- C#冒泡排序算法
用了两种形式的数据,一个是泛型List,一个是数据int[].记录一下,作为自己学习过程中的笔记. using System; using System.Collections.Generic; us ...
- c#-冒泡排序-算法
冒泡排序(Bubble Sort) 冒泡排序算法的运作如下: 1.比较相邻的元素.如果第一个比第二个大,就交换他们两个. 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后 ...
- java冒泡排序算法
/** * 冒泡排序算法:每次 * @author shaobn * @description 每次都会确定一个最大的值 即固定了,所以会每次-i; */ public class Test1 { p ...
- 快速、冒泡排序算法(PHP版)
1.冒泡排序算法改进: 方法一: function bubbleSort($arr){//$arr(1...n)是待排序的文件,采用自下向上扫描,对$arr做冒泡排序 $bFlag = true; / ...
- 冒泡排序算法(C#实现)
简单的冒泡排序算法,代码如下: ] = temp; hasExchangeAction =true; //发生过互换 } } if (!hasExchangeAction) //如果没有发生过互换,则 ...
- 数据结构之------C++指针冒泡排序算法
C++通过指针实现一位数组的冒泡排序算法. 冒泡排序 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法. 代码: /* Name:冒泡排序算法 Copyright:Null ...
- PHP实现冒泡排序、双向冒泡排序算法
冒泡排序(Bubble Sort),是一种较简单的.稳定的排序算法.冒泡排序算法步骤:比较相邻的元素,如果第一个比第二个大,就交换他们两个的位置:对每对相邻的元素执行同样的操作,这样一趟下来,最后的元 ...
- java:高速排序算法与冒泡排序算法
Java:高速排序算法与冒泡算法 首先看下,冒泡排序算法与高速排序算法的效率: 例如以下的是main方法: /** * * @Description: * @author:cuiyaon ...
- 【C语言】两种方式实现冒泡排序算法
题目要求 编写一个C语言程序,实现基本的冒泡排序算法. 算法 冒泡排序,用一句话来总结: 一组数中,相邻的两个数进行比较.交换,将最大(小)数交换至尾(首)部,即完成了一次冒泡排序 要想对N个数字进行 ...
- php中的冒泡排序算法
<?php //php中的冒泡排序算法 //从大到小的排序方式 ,$arr[$j]>$arr[$j+1](这里换成了从小到大的排序方式) $arr=array(); $arr=array( ...
随机推荐
- Delphi控件的停靠功能
Delphi自带的许多控件都有停靠功能,而且操作非常简单,大可不必选用第三方控件. 基本上,要进行Dock操作至少需要两个组件,一个人被附着的Dock Site组件,另一个人附在Dock ...
- linux内核编译环境配置
linux内核编译环境配置 如果不是编译内核,只需要安装与内核相匹配的kernel-devel开发包即可.即是/lib/modules/`uname -r`/build -> /usr/src/ ...
- ios应用接入微信开放平台
前几天试了一下服务端接入微信公众平台,昨天又看了一下APP接入开放平台 开放平台和公众平台的差别 公众平台针对的是公众账号,除了提供管理后台之外.也开放了若干接口,让微信server和开发人员自己的应 ...
- win8 远程桌面 你得凭证不工作
今天在在登录azure远程桌面时,一直提示你的凭证不工作, 按照网上各种教程都不行, 后来发现在win8中用户名结构中,需要加上本机电脑名比如:“win8\administrator”.
- KMP算法的Next数组详解(转)
转载请注明来源,并包含相关链接. 网上有很多讲解KMP算法的博客,我就不浪费时间再写一份了.直接推荐一个当初我入门时看的博客吧: http://www.cnblogs.com/yjiyjige/p/3 ...
- Andriod中绘(画)图----Canvas的使用具体解释
转载请注明出处:http://blog.csdn.net/qinjuning 因为在网络上找到关于Canvas的使用都比較抽象,或许是我的逻辑思维不太好吧,总是感觉理解起来比較困难, 尤其是对 ...
- A Game of Thrones(11) - Daenerys
Daenerys Targaryen wed Khal Drogo with fear and barbaric([bɑː'bærɪk]野蛮的,粗野的) splendor(光彩:壮丽) in a fi ...
- zoj3471(状压dp)
题目连接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4257 题意:不超过10种气体,两两之间相互碰撞可以产生一定的能量,如 ...
- ftk学习记(waitbox篇)
[声明:版权全部.欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 前面说到了脚本.那么就看看ftk中demo与script搭配的效果是什么样的? 上面的效果图就相 ...
- Python什么是二次开发的意义?python在.net项目采用
任何人都知道python在.net该项目是做什么的啊? 辅助用途,用作"二次开发"..net站点的话python主要是CGI才用.能够用python编写B/S程序. 解释一下二次开 ...