最近在做一个设备,里面有个类似闹钟的功能,我想要将所有的闹钟按照时间先后顺序排序一下,因为我是用一个数组存储的所有闹钟事件,所以需要将数组中时间相关的数据进行排序,同时获得数组的下标的顺序,下边是排序的Demo算法,很简单
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| #include <iostream> #include <stdlib.h> #include <time.h>
using namespace std;
#define size 10 struct temp { int number; int index; }; int main() { int i = 0; int s[size]; srand(time(NULL)); struct temp tmp[size]; for (i=0; i<size; i++) { s[i] = rand() % 100; tmp[i].number = s[i]; tmp[i].index = i; } cout << "输入的数组是:" << endl; for (i=0; i<size; i++) cout << s[i] << endl;
for (int j=0; j<size;j++) { for (int i=size-2; i>=j; i--) if (s[i] > s[i+1]) { int t = s[i]; s[i] = s[i+1]; s[i+1] = t; temp tt; tt.index = tmp[i].index; tmp[i].index = tmp[i+1].index; tmp[i+1].index = tt.index; } } cout << endl << "排序后的数组是:" << endl; for (i=0;i < size;i++) cout << s[i] << endl; cout << "排序后的数组下标是:" << endl; for (i=0; i<size; i++) cout << tmp[i].index << endl; }
|
Gitalk 加载中 ...