选择、插入排序

#include <stdio.h>
#include <time.h>

#define MAX 100

void cha_ru (int *ar) {
	int i, j, c, b;
	for (i = 1; i < MAX; ++i) {
		for (j = 0; j < i; ++j) if (ar[j] > ar[i]) break;
		if (!(j ^ i)) continue;
		for (c = i - 1,b = ar[i]; c >= j; --c) ar[c + 1] = ar[c];
		ar[j] = b;
	}
}

void xuan_ze (int *ar) {
	int i, j, min;
	for (i = 0; i < MAX; ++i) {
		min = i;
		for(j = i + 1; j < MAX; ++j) 
			if (ar[min] > ar[j]) min = j;
		if (min == i) continue;
		ar[i] ^= ar[min];
		ar[min] ^= ar[i];
		ar[i] ^= ar[min];
	}
}

void put(int *ar) {
	int i;
	for (i = 0; i < MAX; ++i) printf("%d ", ar[i]);
	printf("\n");
}

void init (int *ar) {
	int i;
	for (i = 0, srand(time(0)); i < MAX; ++i) {
		ar[i] = rand() % 1000;
		printf("%d ", ar[i]);
	}
}

int main () {
	int ar[MAX];
	printf("\n\n[--- 原数据 ---]\n");
	init(ar);
	cha_ru(ar);
	printf("\n[---插入排序---]\n");
	put(ar);

	printf("\n\n\n[--- 原数据 ---]\n");
	init(ar);
	xuan_ze(ar);
	printf("\n[---选择排序---]\n");
	put(ar);
	return 0;
}
posted @ 2020-12-18 11:10  代码附体  阅读(73)  评论(0编辑  收藏  举报