100926 中软实训之多动脑子
今天,我觉得我爱益最深的就是这句话:你要多动脑子。
这是我们组长对我说的。想来真惭愧。感觉自己真的是没有动够脑子。没有尽力去思考里面的逻辑。我在做那个卷烟零售系统的销售汇总的界面。在要显示的内容里面,我添加了供应商一项。而且里面的ListCtrl也没有做好,没有对整齐。其实这个一看看他们写的代码就知道该怎么对整齐,或者说自己想一想也就能知道怎么就能对整齐。我就少想了一步。最近做项目总感觉有点埋没良才的感觉,或许就是因为这样,我才做得越来越差。要摆正态度呵。今天的效率,不,应该说最近的效率都比较低。有点懈怠了。要反省。
话说被他这么一说,我就一点感觉自己越来越不行了。甚至还一点不自信了。有点怀疑自己做软件的潜力。我想起一句话:不会举一反三,你永远学不会!
今天我想来想去,就学了一个重载OnOk函数。把那个Cdialog::OnOk() 注释掉就不出出来一按回车那个界面就不见了的情况。
不过今天浏览网页看到了一个比较好的算法。一道华为面试题,就是给一个1~n的自然数排序。要求时间复杂度为O(n),空间使用率为O(1);这个题还是在优快云上看到的。
解法如下:
Void sort(int arr[], int n)
{
Int cnn = 0;
For(int i=0; i<n; i++)
{
Int t;
While(arr[i] != i)
{
T =Arr[arr[i]];
Arr[arr[i]];=arr[i];
Arri[i] = t;
}
}
}
在vs下写的。
#include <stdio.h>
void ssort(int arr[], int n)
{
int cnt = 0;
for (int i=0; i<n; i++)
{
int temp;
while (arr[i] != i)
{
temp = arr[arr[i]];
arr[arr[i]] = arr[i];
arr[i] = temp;
cnt ++;
}
}
printf("%d/n",cnt);
}
void print(int arr[], int n)
{
for (int i=0; i<n; i++)
{
printf("%d ",arr[i]);
}
printf("/n");
}
int main()
{
int arr[] = {4,2,1,9,0,5,3,8,7,6};
int n = 10;
print(arr, n);
ssort(arr, n);
print(arr, n);
system("pause");
return 0;
}