4、冒泡排序.cpp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #include <iostream>
  2. //冒泡排序:最常用的排序算法,对数组内元素进行排序
  3. //1、比较相邻的元素,如果第一个比第二个大,就交换他们两个
  4. //2、对每一对相邻元素做同样的工作,执行完毕后,找到第一个最大值
  5. //3、重复以上步骤,每次比较次数-1,直到不需要比较
  6. //实例:将数组{ 4,2,8,0,5,7,1,3,9 }
  7. int main4()
  8. {
  9. //利用冒泡排序实现升序序列
  10. int arr[9] = { 4,2,8,0,5,7,1,3,9 };
  11. std::cout << "排序前:" << std::endl;
  12. for (int i = 0; i < 9; i++)
  13. {
  14. std::cout <<arr[i] <<"";
  15. }
  16. std::cout << std::endl;
  17. //开始排序
  18. //排序的总轮数 = 元素个数 - 1;
  19. //每轮对比次数 = 元素个数 - 排序轮数 -1;
  20. for (int i = 0; i < 9 - 1; i++)
  21. {
  22. //内层循环对比 次数 = 元素个数 - 当前轮数 -1
  23. for (int j = 0; j < 9 - i - 1; j++)
  24. {
  25. //如果第一个数字比第二个数字大,交换这两个数字
  26. if(arr[j]>arr[j+1])
  27. {
  28. int temp = arr[j];
  29. arr[j] = arr[j+1];
  30. arr[j + 1] = temp;
  31. }
  32. }
  33. }
  34. //排序后结果
  35. std::cout << "排序后:" << std::endl;
  36. for (int i = 0; i < 9; i++)
  37. {
  38. std::cout << arr[i] << "";
  39. }
  40. std::cout << std::endl;
  41. system("pause");
  42. return 0;
  43. }