冒泡排序算法 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( ...
随机推荐
- hdu1573-X问题
http://acm.hdu.edu.cn/showproblem.php?pid=1573 中国剩余定理 #include<iostream> #include<cstdio> ...
- Android开发经验之—intent传递大数据
在Activity或者组件之前传递信息时,一般採用intent绑定bundle的方式传值,但在使用过程中须要注意的是不要用bundle传递大容量数据: 在做项目的过程中,须要将听写界面的听写结果信息传 ...
- C#整理
输入输出--数据类型--变量与常量--运算符表达式--语句(顺序.分支.循环)--数组--函数--结构体一.输入与输出.Console.ReadLine();Console.WriteLine();C ...
- Python heapq 模块的实现 - A Geek's Page
Python heapq 模块的实现 - A Geek's Page Python heapq 模块的实现
- 冒泡排序 JAVA版
冒泡排序 算法思想是每次从数组末端开始比较相邻俩元素,把第i小的冒泡到数组的第i个位置.i从0一直到N-1从而完成排序.当然也可以从数组开始端开始比较相邻两元素,把第i大的冒泡到第N-i个位置.I从0 ...
- oracle事务(转)
今天温习oracle事务,记录如下: 事务定义 事务是保持数据的一致性,它由相关的DDL或者DML语句做为载体,这组语句执行的结果要么一起成功,要么一起失败. 我们 ...
- 使用EXCEL设置“下拉菜单”选项功能
原创作品.出自 "深蓝的blog" 博客.欢迎转载.转载时请务必注明出处,否则有权追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlo ...
- no copy constructor available or copy constructor is declared 'explicit'
今天新写了一个类.然后对这个类使用STL中的vector,碰到错误: no copy constructor available or copy constructor is declared 'ex ...
- 公布AppStore被拒绝的经历
我们知道IOS发布的版本有很多原因是苹果拒绝发表,我总结了这里3手头上做的原因,他拒绝游,包括同事.朋友拒绝的理由,IOS app参考朋友. 1. 使用非公开API该计划将被拒绝 2. beta版.d ...
- iPhone、iPad强制关机
情景:iPad測试应用过程中死机了. 解决:同一时候按住右上方的电源键和屏幕下方的HOME键大约10秒左右. 就会自己主动强制断电关机,然后重新启动. 强制重新启动后你会看到进入苹果的标志,然后进入主 ...