博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
冒泡排序
阅读量:4677 次
发布时间:2019-06-09

本文共 1723 字,大约阅读时间需要 5 分钟。

参考链接:

参考链接:

1、比较相邻的元素。如果第一个比第二个大(小),就交换他们两个。

2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大(小)的数。

3、针对所有的元素重复以上的步骤,除了最后已经选出的元素(有序)。

4、持续每次对越来越少的元素(无序元素)重复上面的步骤,直到没有任何一对数字需要比较,则序列最终有序。

有以下代码

#include "stdafx.h"//数组下标小的往后挪void bubble_sort_0(int arr[], int i_arrNum){    int i_temp;    for (int i = 0; i < i_arrNum - 1; i++)    {
//整个数组需要排序 num - 1 次 for(int j = 0; j < i_arrNum - 1 - i; j++) {
//把最小的这个数挪到数组最后需要的最大次数是 num - 1,已经排过序的数不用再管 num - i if(arr[j] < arr[j + 1])// arr[j] > arr[j+1]大数往后 // arr[j] < arr[j+1]小数往后 { i_temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = i_temp; } } for (int a = 0; a < i_arrNum; a++) { printf("%d, ", arr[a]); } printf("lalala 000 \r\n"); }}//数组下标大的往前挪void bubble_sort_1(int arr[], int i_arrNum){ int i_temp; for (int i = 0; i < i_arrNum - 1; i++) {
//整个数组需要排序 num - 1 次 for(int j = (i_arrNum - 2); j >= i; j--) {
//最后2个数的下标是 num - 1,num - 2 比较到下标是i为止 下标小于i是已经比较过的数 if(arr[j] < arr[j + 1]) { i_temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = i_temp; } } for (int i = 0; i < i_arrNum; i++) { printf("%d, ", arr[i]); } printf("lalala 111 \r\n"); }}int _tmain(int argc, _TCHAR* argv[]){ int arr_0[6] = {
1, 2, 3, 4, 5, 6}; bubble_sort_0(arr_0, (sizeof(arr_0) / sizeof(int))); printf("\r\n"); int arr_1[6] = {
1, 2, 3, 4, 5, 6}; bubble_sort_1(arr_1, (sizeof(arr_1) / sizeof(int))); return 0;}

运行结果:

 

转载于:https://www.cnblogs.com/ckrgd/p/9225692.html

你可能感兴趣的文章
[12/11/19] 折半&倍增思想学习笔记
查看>>
关于endnote与word或wps关联的问题
查看>>
分块打表
查看>>
uva 297 - Quadtrees
查看>>
数组练习3 求最大连通子数组的和
查看>>
hdu_2111_Saving HDU(贪心)
查看>>
hdu_5753_Permutation Bo(找规律)
查看>>
两种分页方案
查看>>
centos7上建立vnc server
查看>>
《麻辣江湖》即将上线!
查看>>
Mybatis中mapper.xml文件判断语句中的单双引号问题
查看>>
frameset和frame
查看>>
饥饿的小易(规律,同余大数)
查看>>
ats透明代理
查看>>
PHP 小代码
查看>>
2016/03/16 codes
查看>>
2018年7月21日工作总结
查看>>
Linux shell 命令判断执行语法 ; , && , ||
查看>>
vim代码格式化插件clang-format
查看>>
Android字体加粗
查看>>