#include
#include
#include
int main()
{
srand((unsigned int)time((NULL)));
int a<5>={0};//最好初始化
for (int i=0;i<5;i++)
{
a=rand()%10;
printf("%d\n",a);
}
printf("----------------------\n");
int kmax=0;//记录最大值下标
for (int i=0;i<4;i++)
{
kmax=i;
for (int j=i+1;j<5;j++)
{
if (a
{
kmax=j;
}
if (kmax!=i)//交换找到的最大数与原来最大数
{
int temp;
temp=a
a
a=temp;
}
}
}
————————————————————————————————————————————
输出排序后的值
for (int i=0;i<5;i++)
{
printf("%d",a);
}
getchar();
return 0;
}
调戏窗口
#include
#include
void open()
{
ShellExecuteA(0,"open","\"D:\\Program Files (x86)\\Tencent\\TIM\\Bin\\QQScLauncher.exe\"",0,0,1);//系统函数打开软件
}
void move()
{
HWND win=FindWindowA("TXGuiFoundation","TIM");//找句柄类名标题用的spy软件获得
while (win==NULL)
{
printf("失踪");
}
int i=0;
while (i<900)
{
SetWindowPos(win,NULL,16*i/9,i,1,4,1);//设置位置(坐标,长宽)
Sleep(200);
i+=10;
if (i/10%2==1)
{
ShowWindow(win,SW_HIDE);//隐藏窗口
}
else
{
ShowWindow(win,SW_SHOW);//显示窗口
}
}
}
int main()
{
system("taskkill /f /im TIM.exe ");//结束进程
Sleep(3000);
open();
Sleep(3000);
move();
system("pause");
return 0;
}
数据结构中排序方法有多少种
1、插入排序(直接插入排序和希尔排序)2、选择排序(直接选择排序和堆排序)
3、交换排序(冒泡排序和快速排序)
4、归并排序
5、基数排序
直接插入排序:逐个将后一个数加到前面的排好的序中。在直接插入排序过程中,对其中一个记录的插入排序称为一次排序;直接插入排序是从第二个记录开始进行的,因此,长度为n的记录序列需要进行n-1次排序才能完成整个序列的排序。时间复杂度为O(n2)。
希尔排序:希尔排序又称缩小增量排序,增量di可以有各种不同的取法,但最后一次排序时的增量必须为1,最简单可取di+1=di/2(取小)。时间复杂度为O(n(log2n)2)。
直接选择排序
说明:每次将后面的最小的找出来插入前面的已排好的序中。同理,具有n个记录的序列要做n-1次排序。
时间复杂度为O(n2)。
冒泡排序:两个两个比较,将大的往后移。通过第一次冒泡排序,使得待排序的n个记录中关键字最大的记录排到了序列的最后一个位置上。然后对序列中前n-1个记录进行第二次冒泡排序。。。对于n个记录的序列,共需进行n次冒泡排序。时间复杂度为O(n2)。
快速排序:又叫分区交换排序,是对冒泡排序方法的一种改进。时间复杂度为O(nlog2n)。
归并排序:将两个或两个以上的有序数据序列合并成一个有序数据序列的过程。时间复杂度为O(nlog2n)。