常见排序算法和二分查找

2018-03-21  本文已影响0人  偏城御

                   //冒泡排序

//                         int[] intArr = {20,90,13,88,1,15,40};

//                         for(int i = 0; i < intArr.Length-1; i++) {

//                                  for(int j = 0; j <  intArr.Length-i-1;j++) {

//                                           if(intArr[j]>intArr[j+1]) {

//                                                     inttemp = intArr[j];

//                                                     intArr[j] = intArr [j + 1];

//                                                     intArr[j + 1] = temp;

//                                           }

//                                  }

//                         }

                            //选择排序

//                         int[] intArr = {20,90,13,88,1,15,40};

//                         intmin;

//                         intminindex;

//                         for(int i = 0; i < intArr.Length-1; i++) {

//                                  min= intArr [i];//记录最小值

//                                  minindex= i;//记录最小值下标

//                                  //找出剩余数组中的最小值

//                                  for(int j = i+1; j < intArr.Length; j++) {

//                                           if(intArr[j]

//                                                     min= intArr [j];

//                                                     minindex= j;

//                                           }

//                                  }

//                                  intArr[minindex] = intArr [i];

//                                  intArr[i] = min;

//                         }

//                         for(int i = 0; i < intArr.Length; i++) {

//                                  Console.WriteLine(intArr[i]);

                            //插入排序

//                                                     int[] arr = {12,35,0,54,33,23,22};

//                                                     inttemp,p;

//                                                     for(int i = 1; i < arr.Length; i++) {

//                                                              temp= arr[i];

//                                                              p= i - 1;

//                                                              while(p>=0&&temp

//                                                                       arr[p + 1] = arr [p];

//                                                                       p--;

//                                                              }

//                                                              arr[p + 1] = temp;

//                                                     }

//                                                     for(int j =0; j

//                                                              Console.Write("{0},",arr[j]);

//                                                     }

                   }

         }

}

二分查找

while(low<=high){

int mid = (low+high)/2;

//mid 代表中间索引,不能放到while循环的外面

if(a[mid]) == key){

Console.WriteLine("Find Key,index = "+mid);

//如果中间的数大于要查找的数,把后面一半数组去掉

}else if ( a[mid]>key ) {

high = mid -1;

}else{   //小于要查找的数,把前面的一半的数去掉

low = mid +1;

}

}

上一篇 下一篇

猜你喜欢

热点阅读