插入排序 二分查找
2014-12-10 17:47
239 查看
// //插入排序 //二分查找 int start = 0, end = count - 1,mid = 0; int n; printf("please input a number\n"); scanf("%d", &n); while ( start <= end) { mid = (start + end) / 2; if (array[mid] > n) { end = mid - 1; } else if (array[mid] < n){ start = mid + 1; } else { break; } } if (array[mid] == n) { printf("[%2d]: %2d\n", mid , array[mid]); }else { printf(" not found\n"); }用函数处理数组
void swap(int *p1 , int *p2) { if (p1 != p2){ int temp = *p1; *p1 = *p2; *p2 = temp; } } void printArray(int count , const int array[]) { for (int i = 0; i < count; i++) { printf("array[%2d] = %2d\n", i, array[i]); } } void bubbleSort(int count , int array[]) { int flag = 1; for (int i = 0; i < count - 1 && 1 == flag; i++) { flag = 0; for (int j = 0; j < count - i - 1; j++) { if (array[j] < array[j + 1]) { swap(array + j, array + j + 1); flag = 1; } } } } void selectionSort(int count , int array[]) { int minIndex = 0; for (int i = 0; i < count - 1; i++) { minIndex = i; for (int j = minIndex + 1; j < count; j++) { if (array[minIndex] > array[j]) { minIndex = j; } } if (minIndex != i) { swap(array + minIndex, array + i); } } } void insertSort(int count , int array[]) { for (int i = 1; i < count; i++) { int j = i; int temp = array[j]; while ( j > 0 && temp < array [j - 1]) { array[j] = array [j - 1]; j--; } array[j] = temp; } } int halfSeek(int count, const int array[],int target) { int start = 0, end = count - 1, mid =0; while (start <= end) { mid = (start + end ) / 2 ; if (array[mid] > target) { end = mid -1; } else if (array[mid] < target) { start = mid - 1; } else { return mid; } } return -1; }
相关文章推荐
- 《算法导论》第二章----插入排序(伪代码实现、课后习题(递归版本、二分查找策略版本))
- 数据结构--加入二分查找的插入排序(优化)
- 冒泡排序,插入排序,二分查找
- java的冒泡排序、选择排序与插入排序与二分查找
- 二分插入排序和二分查找
- 排序算法之带二分查找的插入排序
- 优化的直接插入排序(二分查找插入排序,希尔排序)
- Java数据结构算法之选择排序、插入排序、冒泡排序、二分查找
- 冒泡排序,改进型冒泡排序,插入排序,二分查找
- 插入排序优化:简单插入排序->二分查找插入排序->二路插入排序->shell插入排序
- 插入排序 二分查找插入排序
- JavaShowAlgorithm-优化的插入排序带着二分查找
- 优化的直接插入排序(二分查找插入排序,希尔排序)
- 冒泡 选择 插入排序 二分查找 代码备忘
- 二分查找插入排序
- 归并排序、插入排序、快速排序、二分查找的c++实现
- 优化的直接插入排序(二分查找插入排序,希尔排序)
- C 语言 排序算法,冒泡排序,选择排序,插入排序,二分查找
- 算法---冒泡排序,快速排序,二分查找(折半查找),选择排序,插入排序
- 冒泡 选择 插入排序 顺序 二分查找方法