美文网首页
冒泡排序 选择排序 插入排序 递归

冒泡排序 选择排序 插入排序 递归

作者: 妈妈说喝牛奶能长个 | 来源:发表于2017-08-15 15:29 被阅读0次

冒泡排序   升序 

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;

  }

相关文章

网友评论

      本文标题:冒泡排序 选择排序 插入排序 递归

      本文链接:https://www.haomeiwen.com/subject/dxcvrxtx.html