// int [] num = {12, 95, 83, 65, 234, 63};
//
// for (int i = 1; i < num.Length ; i++) {
// int temp = num[i];
// int j = i - 1;
// //和前一位比,一直往前比
// //j是从i的前一位开始依次向前减一;
//当下标j对应的数组元素比下标为i对应的元素大的时候,数组中有序数组向后移一位,一直比较,直到不满足条件、不能比较;
// for (; j >= 0 && num[j] > temp ; j--) {// //后移
// num [j + 1] = num [j];
// }
// //插入
//上面循环比较 元素后移彻底结束后插入 ,j+1就是要插入的元素应该放的坐标,j+1是因为上面循环执行了j--操作,不能直接用j;
// num[j + 1] = temp;// }
// for (int i = 0; i < num.Length ; i++) {
// Console.WriteLine (num[i]);
// }
//冒泡排序
// //外层循环决定趟数
// int [] numbers = {12, 23, 34, 24, 56, 11, 9, 38, 89, 66};
// int n = numbers.Length;
// for (int i = 0; i < n - 1; i++) {
// //内层循环控制比较次数
// for (int j = 0; j < n - (i + 1); j++) {
// //数组中前一个元素和后一个元素做比较;
// if (numbers[j] > numbers [j + 1]) { //if(names[j].ConpareTO (names[j + 1] == 1))
// int temp = numbers [j];
// numbers [j] = numbers [j + 1];
// numbers [j + 1] = temp;
// }
// }
// }
// foreach (int j in numbers ) {
// Console.WriteLine ("{0}",j);
// }
//选择排序
// int [] numbers = {12, 23, 34, 24, 56, 11, 9, 38, 89, 66};
// int n = numbers.Length;
// //每次只找一个最小数,最后一个不找 循环n-1趟
// for (int i = 0; i < n - 1; i++) {
//
// int min = numbers [i];//用来存本趟比较中最小值;
// int minIndex = i; //记录最小值下标位置;
// // j 记录下标 内层for循环找这一趟的最小值;
// for (int j = i + 1; j < n; j++) {
// if (min > numbers [j]) {
// min = numbers [j];
// minIndex = j;
// }
// }
// //最小值和当前无序(剩余)数组的第一个元素交换
// numbers [minIndex] = numbers [i];
// numbers [i] = min;
// }
// //遍历数组
// foreach (int a in numbers ) {
// Console.WriteLine ("{0}", a );
// }
//
//二分查找
//有序数组才能二分查找;
//低位小于等于高位才条件成立;
// int[] num = {2, 3, 4, 5, 6, 7, 8, 9};
// int k = int.Parse (Console.ReadLine ());
// int low = 0;
// int high = num.Length - 1;
// while (low <= high) {
// //折半
// int mid = (low + high) / 2;
// if (num [mid] == k) {
// Console.WriteLine ("找到,下标为:{0}", mid);
// break;
// } else if (num [mid] > k) {
// high = mid - 1;
// } else {//num[mid] < k
// low = mid + 1;
// }
// }
// if (low > high) {
// Console.WriteLine ("没有找到");
// }