大家好,欢迎来到IT知识分享网。
一、冒泡排序概述
二、冒泡排序算法分析
1.图像分析原理
2.冒泡排序算法代码详解
既然我们知道了原理,那我们结合一下代码来理解吧。
void bubbleSort( int data[] ,int n )//data[]是传过来的数组,n是数组中那些数的个数 {
/*----begin------*/ for(int i=0;i<n-1;i++)//这里是外循环,有n个数就比较n-1次 {
for(int j=0;j<n-1-i;j++)//这是内循环,每轮比较n-1-(上一轮的除去的数的个数) {
if(data[j]>data[j+1])//判断如果左边的数大于右边的数,就把大的数往右移 {
//这个是交换不用第三方变量的方式,当然也可以借用第三方变量来交换 data[j]=data[j]+data[j+1]; data[j+1]=data[j]-data[j+1]; data[j]=data[j]-data[j+1]; } } } /*-----end------*/ }
三、总代码
#include <stdio.h> #include <stdlib.h> //冒泡排序 void bubbleSort( int data[] ,int n )//data[]是传过来的数组,n是数组中那些数的个数 {
/*----begin------*/ for(int i=0;i<n-1;i++)//这里是外循环,有n个数就比较n-1次 {
for(int j=0;j<n-1-i;j++)//这是内循环,每轮比较n-1-(上一轮的除去的数的个数) {
if(data[j]>data[j+1])//判断如果左边的数大于右边的数,就把大的数往右移 {
//这个是交换不用第三方变量的方式,当然也可以借用第三方变量来交换 data[j]=data[j]+data[j+1]; data[j+1]=data[j]-data[j+1]; data[j]=data[j]-data[j+1]; } } print(data,n);//输出每一轮排序后的数 } /*-----end------*/ } //输出数组元素 void print(int data[] ,int n) {
for(int i=0;i<n;i++) printf("%d ",data[i]); printf("\n");//输出后换行 } //主函数 int main() {
int data[]={
5,1,3,2};//数组元素 bubbleSort(data,4);//调用冒泡排序函数 return 0; }
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/122604.html