#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>a)//找出最大值的下标

{

kmax=j;

}

if (kmax!=i)//交换找到的最大数与原来最大数

{

int temp;

temp=a;

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)。