问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

请编程实现一个冒泡排序算法?

发布网友 发布时间:2022-05-12 04:00

我来回答

4个回答

热心网友 时间:2022-04-24 01:04

算法思想简单描述:

在要排序的一组数中,对当前还未排好序的范围内的全部数,自上

而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较

小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要

求相反时,就将它们互换。

下面是一种改进的冒泡算法,它记录了每一遍扫描后最后下沉数的

位置k,这样可以减少外层循环扫描的次数。

冒泡排序是稳定的。算法时间复杂度O(n^2)

算法实现:

/*
功能:冒泡排序
输入:数组名称(也就是数组首地址)、数组中元素个数
*/

void bubble_sort(int *x, int n)

{

int j, k, h, t;

for (h=n-1; h>0; h=k) /*循环到没有比较范围*/

{

for (j=0, k=0; j<h; j++) /*每次预置k=0,循环扫描后更新k*/

{

if (*(x+j) > *(x+j+1)) /*大的放在后面,小的放到前面*/

{

t = *(x+j);

*(x+j) = *(x+j+1);

*(x+j+1) = t; /*完成交换*/

k = j; /*保存最后下沉的位置。这样k后面的都是排序排好了的。*/

}

}

}

}

热心网友 时间:2022-04-24 02:38

一个标准的简单冒泡排序算法:
void bubble_sort(int a[], int n)
{
int i, j, temp;
for (i = 0; i < n-1; i++)
for (j = 0; j < n-1-i; j++)
{
if(a[j] > a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}

热心网友 时间:2022-04-24 04:30

int [] array = new int
;
int temp = 0 ;
for (int i = 0 ; i < array.Length - 1 ; i++)
{
for (int j = i + 1 ; j < array.Length ; j++)
{
if (array[j] < array[i])
{
temp = array[i] ;
array[i] = array[j] ;
array[j] = temp ;
}
}
}

热心网友 时间:2022-04-24 06:38

冒泡排序代码
AAuto
bubble_sort = function(array){
var temp;
for( i=1;#array ){
//i前面的已经是最小的数,并排序好了
for(j=#array;i+1;-1){
//挨个比较
if(array[j]<array[j-1]){
//小的总是往前排
bubble = array[j]
array[j] = array[j-1];
array[j-1] = bubble;
}
}
}
}
io.print("----------------")
io.print("冒泡排序( 交换类换排序 )")
io.print("----------------")
array ={2;46;5;17;1;2;3;99;12;56;66;21};
bubble_sort(array,1,#array)
//输出结果
for(i=1;#array;1){
io.print( array[i] )
}
C
void bubble_sort(int *x, int n)
{
int j, k, h, t;
for (h=n-1; h>0; h=k) /*循环到没有比较范围*/
{
for (j=0, k=0; j<h; j++) /*每次预置k=0,循环扫描后更新k*/
{
if (*(x+j) > *(x+j+1)) /*大的放在后面,小的放到前面*/
{
t = *(x+j);
*(x+j) = *(x+j+1);
*(x+j+1) = t; /*完成交换*/
k = j; /*保存最后下沉的位置。这样k后面的都是排序排好了的。*/
}
}
}
}
C++
#include <iostream>
#define LEN 9
using namespace std;
int main()
{
int nArray[LEN];
for(int i=0;i<LEN;i++)nArray[i]=LEN-i;
cout<<"原始数据为:"<<endl;
for(int i=0;i<LEN;i++)cout<<nArray[i]<<" ";
cout<<endl;
//开始冒泡
{
int temp;
for(int i=LEN-1;i>0;i--)
for(int j=0;j<i;j++)
{
if(nArray[j]>nArray[j+1])
{
temp=nArray[j];
nArray[j]=nArray[j+1];
nArray[j+1]=temp;
}
}
}
//结束冒泡
cout<<"排序结果:"<<endl;
for(int i=0;i<LEN;i++)cout<<nArray[i]<<" ";
return 0;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么我的《英雄传说:空之轨迹SC》中“艾尔贝周游道的通缉魔兽”不见... 空之轨迹sc 托兰特平原的通缉魔兽二号 我是2兆的宽带 原先的下载速度达到260KB/S 重装下系统最高还不到70K... 为什么两兆的线下载速度只有80KB/S 我们家宽带是网通的办理了2兆的可是下载速度70~90KB 原因 一九八三年大年三十是什么星座 请教1984年2月1日出生而且阴历生日正好是大年三十,请问我岁是多大 万岱鸿腾国际商贸有限公司送表真的吗 云南岱鸿商贸有限公司怎么样? 重庆鸿岱科技有限公司怎么样? 冒泡排序算法的改进及其实现 具体要求: 1、熟悉和了解冒泡排序的算法... 华为p40pro钉钉支持分身吗 别人说:“这本书很水。”这里的”水“是什么意思?谢谢大家解答。 我看到青岛市城阳区惜福镇西荆村的村民都在外面买水,我问下这里的水是怎么回事? 仿写句子,这里的水清澈见底,荡舟湖上,真有‘人在画中游’的感觉 一年级题这里的水和远处的山真美啊,想起一句什么学过的话? 这里的“水”同样是“()”“泥”就是“()&quot;? 有人问,知道这里的水有多深是什么意思 马尾藻海有“海上坟场”之称,这里的水为什么始终流不出去? 赏析句子 这里的水却是镜子一样平,蓝天一般清,拉长的水草在水底轻轻地浮动 芦花荡里的 求大神帮忙 秘鲁首都利马600多年从未下过雨,街道却绿树成荫,这里的水是从哪里来的? 这里的水真清啊(写具体 ) 这里的水,后面两个空该填什么 这里的水同样是什么泥就是什么? 这里的水比什么比什么造句? 女生问男生你会不会觉得我很烦,然后男生回复说,你觉得我不会吗?他这什么意思 女朋友说你要是嫌烦我可以消失的什么意思? 一个男孩儿跟我说我一直找你你不会烦嘛你要是觉得烦就告诉我我应该怎么回他? 我天天粘着我女朋友我女朋友要是觉得我烦了我该怎么办? 你是不是觉得我很烦啊 用java写出冒泡排序和选择排序还有算法思想!急急急急急急啊 男士网名成熟霸气稳重的有什么? 老公和外遇有感情了,我该怎么办 男人跟出轨情人有了很深的感情,这时对老婆会是是什么感情? 男人与情人的感情是真爱吗? 男人出轨后,究竟与情人有没有情? 老公和情人感情很深,老婆要主动让位吗 古代男孩子活泼可爱的名字怎么取呢?(求大家了&#xF62D;) 发现老公和一个女人在一起7年了,请问他们中间有感情吗?他不和我离婚 朋友的侄儿出生了很可爱,朋友的姐夫姓“邬”不太好取名字,望朋友们给可爱的男孩取个儒雅的好名字 老公和情人刚刚分开对情人还有感情我该怎么做 古代男孩子活泼可爱的名字 老公和情人我都产生了感情怎么办? 老公对情人动真的感情了 ng的读音是什么? 已婚的男人与情人之间有真正的感情吗 武汉从第一例病例到1月24日封城总共感染多少人? 我老公跟情人出轨12年为什么什么的? 属龙和属鼠的好吗 姓氏Ng 怎么发音?