#include<iostream> using namespace std; #include<vector> #include "Vector.h" void bubblesort1(int * num ,int lo, int hi) { for (int i = 0; i <= hi - lo; i++) { for (int j = i + 1; j <= hi - lo; j++) { if (num[i] > num[j]) swap(num[i], num[j]); } } } void bubblesort_better(int * num, int lo, int hi) { int lo1 = lo; while (lo1 < hi) { int n=0; while (++lo1 <= hi) { if (num[lo1 - 1] > num[lo1]) { swap(num[lo1 - 1], num[lo1]); n = lo1; } } if (n != 0) { hi = lo1 -1; lo1 = lo; } else { hi--; lo1 = lo; } } } int main() { int v1[10] = {1,2,3,0,9,8,7,6,5,4}; bubblesort_better(v1, 0,9); for (int i = 0; i < 10; i++) { cout << v1[i]<< endl; } system("pause"); }
在排序的时候,要想已经排过的或者其他的顺序的 是否还需要进行在经过算法排序,不需要的话,怎么办来避免?-