MOOC清华《程序设计基础》第4章:折半插入排序(测试代码版)

来源:互联网 发布:java pkcs10 公钥 编辑:程序博客网 时间:2024/06/05 19:29

测试代码1.0:

#include <iostream>using namespace std;int main(){int cards[17]={56,32,67,12,23,89,3,14,2,25,43,31,1,24,44,35,76};for(int i = 1; i < 17; i++){int target = cards[i];int low = 0, high = i - 1, id = -1;int counter = 0;while (low <= high){int middle = (low + high) / 2;if(cards[middle] >= target)high = middle - 1;elselow = middle + 1;  cout << "low:" << low << '\t' << "high:" << high << endl; //测试代码 }id = high + 1;if(id != -1){for(int j = i; j > id; j--)  cards[j] = cards[j - 1];  cards[id] = target; counter++;} cout << "id:" << id << '\t' << cards[id] << '\t' << "counter:" << counter << endl; //测试代码 }for(int i = 0; i < 17; i++)cout << cards[i] << '\t';return 0;}

测试代码2.0:

#include <iostream>using namespace std;int main(){int cards[17]={56,32,67,12,23,89,3,14,2,25,43,31,1,24,44,35,76};cout << "原始数据:" << endl;for(int i = 0; i < 17; i++)cout << cards[i] << '\t';cout << endl;for(int i = 1; i < 17; i++){int target = cards[i];int low = 0, high = i - 1, id = -1;while (low <= high){int middle = (low + high) / 2;if(cards[middle] >= target)high = middle - 1;elselow = middle + 1;  }id = high + 1;if(id != -1){for(int j = i; j > id; j--)  cards[j] = cards[j - 1];  cards[id] = target; } cout << "第" << i << "趟排序:" << endl;for(int i = 0; i < 17; i++)cout << cards[i] << '\t';cout << endl;}return 0;}

测试代码2.0结果图:



阅读全文
0 0
原创粉丝点击