冒泡排序 升序
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;
}
找出数组元素中,差值(绝对值)最小的两个元素。
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++) { //最后一个数51不需要进行比较 所以length-1
//差值最小的两个数的下标
for (int j = i+1; j < intArr.Length; j++) {
//随机选择两数的差值
int dif =Math.Abs(intArr[i]-intArr[j]);
if (minDifference>dif) {
minDifference = dif;
minY = j;
minX = i;
}
}
}
Console.WriteLine ("{0},{1}",minX,minY);
使用数组描述正整数的二进制表示,如5,则数组为{1,0,1}
string binaryStr = " ";
int n = int.Parse (Console.ReadLine());
while (n>0) {
int i = n % 2;
binaryStr += i; //二进制值存入 字符串binaryStr
n /= 2;
}
//初始化一个和字符串长度相同的数组
int[ ] binary = new int[binaryStr.Length];
//得到字符串的字符数组
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时循环结束
//后移操作
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;
}