計算機軟體技術基礎實驗一
阿新 • • 發佈:2018-12-26
#include<iostream> using namespace std; const int MAXSIZE = 15; int aryLinearList[MAXSIZE]; int length = 9; int lo = 0; int hi = 9; int mid = (hi + lo) / 2 ; int xp; int sign; void sort(int m) { for (int i = 0; i <= m; i++) { for (int j = i+1; j <= m; j++) { if (aryLinearList[i] >= aryLinearList[j]) { int temp = aryLinearList[i]; aryLinearList[i] = aryLinearList[j]; aryLinearList[j] = temp; } } } for (int i = 0; i <= m; i++) { cout<<aryLinearList[i]<<" "<<endl; } } void find(int x) { if (aryLinearList[mid] == x) { xp = mid; sign = 1; } else if (aryLinearList[mid] < x) { lo = mid + 1; mid = (lo + hi)/2; find(x); } else if (aryLinearList[mid] > x) { hi = mid - 1; mid = (lo + hi)/2; find(x); } else if (aryLinearList[mid] != x && hi == lo) { sign = 0; } } void insert(int m) { int aryLinearList_[10]; int j = 0; if (sign == 1) { for (int i = xp; i <= length; i++) { aryLinearList_[j] = aryLinearList[i]; j++; } j = 0; for (int i = xp + 1; i <= length + 1; i++) { aryLinearList[i] = aryLinearList_[j]; j++; } aryLinearList[xp] = m; } else { for (int i = hi+1; i <= length + 1; i++) { int j = 0; int aryLinearList_[10]; aryLinearList_[j] = aryLinearList[i]; j++; } aryLinearList[hi] = m; } for (int i = 0; i <= 10; i++) { cout<<aryLinearList[i]<<" "<<endl; } } void de(int m) { int j = 0; int aryLinearList_[MAXSIZE]; if (sign == 1) { for (int i = xp + 1; i <= length; i++) { aryLinearList_[j] = aryLinearList[i]; j++; } j = 0; for (int i = xp; i <= length - 1; i++) { aryLinearList[i] = aryLinearList_[j]; j++; } for (int i = 0; i <= length -1 ; i++) { cout<<aryLinearList[i]<<" "<<endl; } } else { for (int i = 0; i <= length; i++) { cout<<aryLinearList[i]<<" "<<endl; } } } int main() { int i; for (i = 0; i <= length; i++) { cin>>aryLinearList[i]; } sort(length); int n; cin>>n; find(n); insert(n); lo = 0; length = 9; hi = length; for (i = 0; i <= length; i++) { cin>>aryLinearList[i]; } sort(length); cin>>n; mid = (lo + hi)/2; find(n); de(n); system("pause"); }