冒泡排序 ? 升序?
20 ? 90 ? 13 ? 88 ? 1 ? 15 ? 40
20 ? 13 ? 88 ? ? 1 ? 15 ?40 ?90 ? 第一次
13 ? 20 ? ? 1 ? ?15 ? 40 ?88 ? ? ? ? 第二次
13 ? ? 1 ? 15 ? ?20 ?40 ? ? ? ? ? ? ? ? 第三次
1 ? ? 13 ? 15 ? ?20 ? ? ? ? ? ? ? ? ? ? ? ?第四次
1 ? ? 13 ? 15 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 第五次
1 ? ? 13 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?第六次
int[] intArr = { 20,90,13,88,1,15,40};
for (int i = 0; i < intArr.Length; i++) {
? ? ? ? ? ?for (int j = i+1; j<intArr.Length;i++){
? ? ? ? ? ? ? ? ? ? ? if(intArr[i]>intArr[j]){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?int temp = intArr[j];
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?intArr[j]=intArr[i];
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?intArr[i]= temp;
? ? ? ? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? }
? ? ? ? ? ? Console.Write ("{0} ",intArr[i]);
}
public void Sort (int[] arr){
? ? ? ?for (int i = 0; i < arr.Length-1; i++) {
? ? ? ? ? ? ? ? ?for (int j = 0; j < arr.Length-1-i; j++) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? if (arr[j]>arr[j+1]) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? int temp = arr [j + 1];
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? arr [j + 1] = arr [j];
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?arr [j] = temp;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ? ? ?}
? ? ? ? ?}
}
選擇排序? 升序
int[ ] intArr = { 20,90,13,88,1,15,40};
for (int i = 0; i < intArr.Length-1; i++) {
? ? ? ? ? ?int min = intArr [i];
? ? ? ? ? ?int index = i;
? ? ? ? ? ?for (int j = i+1; j < intArr.Length; j++) {
? ? ? ? ? ? ? ? ? ? ? if (min>intArr[j]) {
? ? ? ? ? ? ? ? ? ? ? min = intArr [j];
? ? ? ? ? ? ? ? ? ? ? index = j;
? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ?}
? ? ? ? intArr[index] = intArr[i];
? ? ? ? intArr[i] = min;
}
for (int i = 0; i < intArr.Length; i++) {
? ? ? ? ? ? Console.Write ("{0} ",intArr[i]);
}
int[] intArr = {12,34,2,54,33,23,51};
for (int i = 0; i < intArr.Length-1; i++) { ? ? ? ? ? ? ? ? ? //前一個下標
? ? ? ? ? ? int min = intArr [i]; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//假設一個最小值
? ? ? ? ? ? int minindex = i; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//最小值下標
? ? ? ? ? ? for (int j = i+1; j < intArr.Length; j++) {? ? ? ? //后一個下標
? ? ? ? ? ? ? ? ? ? ? ? if (min>intArr[j]) { ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //下標值比較
? ? ? ? ? ? ? ? ? ? ? ? ? ? min = intArr [j];
? ? ? ? ? ? ? ? ? ? ? ? ? ? minindex = j;
? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? }
? ? ? ? ?intArr[minindex] = intArr[i];
? ? ? ? ?intArr [i] = min;
}
找出數(shù)組元素中,差值(絕對值)最小的兩個元素。
int minX = 0;
int minY = 0;
int[ ] intArr = {12,34,2,54,33,23,51};
//最小差值
int minDifference = Math.Abs(intArr[0]-intArr[1]);
for (int i = 0; i < intArr.Length-1; i++) { ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //最后一個數(shù)51不需要進行比較 所以length-1
? ? ? ? ? ? ? //差值最小的兩個數(shù)的下標
? ? ? ? ? ? ?for (int j = i+1; j < intArr.Length; j++) {
? ? ? ? ? ? ? ? ? ? ? ? //隨機選擇兩數(shù)的差值
? ? ? ? ? ? ? ? ? ? ? ? ?int dif =Math.Abs(intArr[i]-intArr[j]);
? ? ? ? ? ? ? ? ? ? ? ? ?if (minDifference>dif) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?minDifference = dif;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?minY = j;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?minX = i;
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ?}
}
Console.WriteLine ("{0},{1}",minX,minY);
使用數(shù)組描述正整數(shù)的二進制表示别伏,如5,則數(shù)組為{1正歼,0,1}
string binaryStr = " ";
int n = int.Parse (Console.ReadLine());
while (n>0) {
? ? ? ? ? ?int i = n % 2;
? ? ? ? ? ?binaryStr += i;? ? ? ? ? ? ? ? ? //二進制值存入 字符串binaryStr
? ? ? ? ? ? n /= 2;
}
//初始化一個和字符串長度相同的數(shù)組
int[ ] binary = new int[binaryStr.Length];
//得到字符串的字符數(shù)組
char[ ] chars=binaryStr.ToCharArray ();
int j = 0;
for (int i = binaryStr.Length-1; i >=0; --i) {
? ? ? ? ? ? binary [i] = chars [j] - 48;
? ? ? ? ? ? ++j;
}
for (int i = 0; i < binary.Length; i++) {
? ? ? ? ? ?Console.Write ("{0}",binary[i]);
}
插入排序 ? 升序
int[ ] intArr = {12,34,2,54,33,23,22};
int temp, p; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //p表示需要表示的下標 i的前一位
for (int i = 1;i<intArr.Length,i++){ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
temp = intArr[i];
p = i - 1;
while (p>=0 && temp<intArr[p]){ ? ? ? ? ? ? ? ? ? ? // p<0時循環(huán)結束
//后移操作
? ? ? ? ? ? ?intArr[p+1]=intArr[p];
? ? ? ? ? ? ?--p;
? ? ? ? }
intArr [p + 1] = temp;
}
for (int i = 0; i < intArr.Length; i++) {
? ? ? ? ? ? Console.Write ("{0} ",intArr[i]);
}
//遞歸 ?階乘 ? ? 自己調自己
public int Func (ref int num){
? ? ? ? ? ? ?if (num == 1) {
? ? ? ? ? ? ? ? ? ? ? ? ?return 1;
? ? ? ? ? ? ? }
? ? ? ? ? ? ?sum = num * Func(--num);
? ? ? ? ? ? ?return sum;
? }