VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 642|回复: 5

萌新关于C++冒泡排序的问题

[复制链接]
87_avatar_middle
最佳答案
0 
donate_vip 发表于 2022-5-14 12:46:11 | 显示全部楼层 |阅读模式
问题代码请看图片----------------------------
问题一:if (a[i] < a[j]) 为什么最后给我从小到大排列了,我自己感觉应该是从大到小排列。
问题二:怎么输出一个数组里的全部值。
----------------------------
等待大佬光顾0.0

冒泡排序.jpg




上一篇:萌新关于C++冒泡排序的问题
下一篇:字符串数组中的字符替换问题
91_avatar_middle
最佳答案
0 
在线会员 发表于 2022-5-18 23:20:16 | 显示全部楼层
小狼 发表于 2022-5-14 13:38
萌新表示眼花缭乱了
  1. void bubbleSort(int* arr, int len) {
  2.     for (int i = 0; i < len; i++) {   
  3.         for (int j = 0; j < len - i - 1; j++) {
  4.             if (arr[j] > arr[j + 1]) {
  5.                 int temp = arr[j];
  6.                 arr[j] = arr[j + 1];
  7.                 arr[j + 1] = temp;
  8.             }
  9.         }
  10.     }
  11. }
复制代码


只看这一段就可以了,
关键在第2、3、4行。
17_avatar_middle
最佳答案
41 
在线会员 发表于 2022-5-14 13:09:31 | 显示全部楼层
这个给你参考

  1. using namespace std;

  2. //冒泡排序:需要注意的是传`int* arr` 或 `int arr[]` 本质上形参都只是要求提供的是首地址。
  3. void bubbleSort(int* arr, int len) {
  4.     for (int i = 0; i < len; i++) {
  5.         for (int j = 0; j < len - i - 1; j++) {
  6.             if (arr[j] > arr[j + 1]) {
  7.                 int temp = arr[j];
  8.                 arr[j] = arr[j + 1];
  9.                 arr[j + 1] = temp;
  10.             }
  11.         }
  12.     }
  13. }

  14. void printArrayInt(int* arr, int len) {
  15.     for (int i = 0; i < len; i++) {
  16.         std::cout << arr[i] << std::endl;
  17.     }
  18. }

  19. void bubbleSortArray(int arr[], int len) {
  20.     for (int i = 0; i < len; i++) {
  21.         for (int j = 0; j < len - 1 - i; j++) {
  22.             if (arr[j] > arr[j + 1]) {
  23.                 int temp = arr[j];
  24.                 arr[j] = arr[j + 1];
  25.                 arr[j + 1] = temp;
  26.             }
  27.         }
  28.     }
  29. }
  30. void printArray(int arr[], int len) {
  31.     for (int i = 0; i < len; i++) {
  32.         std::cout << arr[i] << std::endl;
  33.     }
  34. }

  35. int main() {
  36.     int arr[10] = { 4,3,6,9,1,2,10,8,7,5 };
  37.     int arrLength = sizeof(arr) / sizeof(arr[0]);
  38.     printArray(arr, arrLength);
  39.     cout << "-------------------------------------" << endl;
  40.     bubbleSortArray(arr, arrLength);
  41.     printArrayInt(arr, arrLength);
  42.     cout << "-------------------------------------" << endl;
  43.     bubbleSort(arr, arrLength);
  44.     printArray(arr, arrLength);
  45.     return 0;
  46. }
复制代码
87_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2022-5-14 13:38:24 | 显示全部楼层

萌新表示眼花缭乱了萌新关于C++冒泡排序的问题
17_avatar_middle
最佳答案
41 
在线会员 发表于 2022-5-14 13:58:04 | 显示全部楼层
小狼 发表于 2022-5-14 13:38
萌新表示眼花缭乱了

那你应该看着教程边看,不然没啥好办法。
43_avatar_middle
最佳答案
0 
在线会员 发表于 2022-5-17 13:52:47 | 显示全部楼层
1.你这不是冒泡排序,甚至不是排序。
2.使用循环结构
  1. for(int i=0;i<length;i++)
  2. {
  3.     cout<<a[i]<<" ";
  4. }
复制代码

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2023-9-29 11:53

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表