C/C++_三大排序

#include<iostream>
using namespace std;
int main(){
	int a[10] = { 5, 35, 68, 96, 9, 8, 12, 5,56,10};

	/*********************冒泡排序**********************/
	for (int i = 1; i <=9; i++){
		for (int j = 0; j < 10 - i; j++){
			if (a[j]>a[j + 1]){
				a[j] = a[j] ^ a[j + 1];
				a[j + 1] = a[j] ^ a[j + 1];
				a[j] = a[j] ^ a[j + 1];
			}
		}
	}
	for (int i = 0; i < 10; i++){
		cout << a[i] << " ";
	}
	cout << endl;

	/*********************選擇排序**********************/
	for (int i = 0; i < 9; i++){
		for (int j = i + 1; j < 10; j++){
			if (a[i]<a[j]){
				a[i] = a[i] ^ a[j];
				a[j] = a[i] ^ a[j];
				a[i] = a[i] ^ a[j];
			}
		}
	}
	for (int i = 0; i < 10; i++){
		cout << a[i] << " ";
	}
	cout << endl;

	/*********************插入排序**********************/
	int i, j, key;
	for (i = 1; i < 10; i++){
		key = a[i];
		for (j = i; j>0 && a[j - 1]>key; j--){
			a[j] = a[j - 1];
		}
		a[j] = key;
	}
	for (int k = 0; k < 10; k++){
		cout << a[k] << " ";
	}
	cout << endl;

	/*********************字符串複製**********************/
	int k1 = 0;
	char s1[10] = { 'A', 'B', 'C', 'D'};
	char s2[10];
	while ((s2[k1] = s1[k1++]) != '\0');
	cout << s2 << endl;

	/*********************字符串連接**********************/
	int k2 = 0,k3=0;
	char s3[10] = { 'A', 'B', 'C', 'D'};
	char s4[10] = { 'O', 'P', 'Q'};
	while (s3[k3++] != '\0');
	k3 = k3 - 1;
	while ((s3[k3++] = s4[k2++]) != '\0');
	cout << s3 << endl;

	/*********************字符串比較**********************/
	int len1=0, len2=0,len,l;
	char s5[10] = { 'A', 'B', 'C', 'D','G' };
	char s6[10] = { 'A', 'B', 'D', 'D','G' };
	while (s5[len1++] != '\0');
	while (s6[len2++] != '\0');
	len1 = len1 - 1;
	len2 = len2 - 1;
	len1 > len2 ? len = len2 : len = len1;
	for (l = 0; l < len; l++){
		if (s5[l]>s6[l]){
			cout << "1" << endl;
			break;
		}
		else if(s5[l]<s6[l]){
			cout << "-1" << endl;
			break;
		}
	}
	if (l == len&&len1>len) cout << "1" << endl;
	if (l == len&&len2 > len) cout << "-1" << endl;
	if (l == len&&len1 == len&&len2 == len) cout << "0" << endl;

	/*********************字符串長度**********************/
	int len7 = 0;
	char s7[10] = { 'A', 'B', 'C', 'D' };
	while (s7[len7++] != '\0');
	cout << len7-1 << endl;

	/*********************字符串轉化**********************/
	//實現函數:atoi
	int len8 = 0, sum = 0,m=0;
	char s8[10] = { '0', '2','0', '3' };
	while (s8[len8++] != '\0');
	len8 = len8 - 1;
	while (len8--){
		sum = sum * 10 + s8[m++]-'0';
	}
	cout << sum << endl;

	//把數字轉化成字符串。
	//實現函數:itoa
	int n, mm, kk = 0;
	char ss[100];
	cin >> n >> mm;
	while (n){
		int xx = n%mm;
		if (xx > 9){
			ss[kk] = (char)(xx + 55);
		}
		else{
			ss[kk] = xx+'0';
		}
		n /= mm;
		kk++;
	}
	ss[kk] = '\0';
	for (int i = strlen(ss)-1; i>=0; i--){
		cout <<ss[i];
	}
	cout << endl;
	return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章