赞
踩
传统的冒泡排序的时间复杂度为o(n^2),但是我们可以通过改进时他的时间复杂度为o(n^2/2)第一次将最左边向右排序的时候我们把最大的数放在了最右边,第二次将第二大的数放在了右边第二位,同理第三次排序的时候我们不需要比较最又边的数。
- #include<stdio.h>
- #include<iostream>
- using namespace std;
-
- void main()
- {
- int x;
- int n = 8;
- int a[] = { 1,24,3,7,15,45,23,56 };
- for (int i = 0; i<n-1 ; i++) //有8个数所以大循环 要8次
- for (int j = 0; j < n-1 -i ; j++)// 当i=0 时 这个内循环 把最大的排到了最右边,此时后面的只需要排n-1次 依次类推
- {
- if (a[j] > a[j + 1])
- {
- x = a[j];
- a[j] = a[j + 1];
- a[j + 1] = x;
-
- }
- }
- for (int i = 0; i < 8; i++)
- {
- cout << a[i] << " ";
- }
- system("pause");
-
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。