#include "stdio.h"
//折半查找int searchItem(int array[], int len, int key);int main(int argc, char const *argv[]) { int array[] = {1,23,34,12,2,3,45,6,7,8};long len = sizeof(array)/sizeof(int);int location = searchItem(array,10,8); printf("location = %d\n",location );return 0; }/** *使用折半查找来查找一个数 * *参数1 array 数组 *参数2 len 数组长度 *参数3 key 查找的数 *返回查找的数的位置 , 如果查找不到返回 -1 */int searchItem(int array[], int len, int key){ //1.先定义变量int low = 0, high = len - 1, mid;//2.循环查找while(low <= high){ //2.1计算 mid位置 mid = (low + high)/2;//判断key array[mid] 的大小,在那一半区查找if (key > array[mid]) {//右半区域 low = mid + 1; }else if (key < array[mid]) { high = mid - 1; }else{ return mid; } }return -1; }
#include "stdio.h"
void selection_sort(int array[], int len);//选择排序int main(int argc, char const *argv[]) { int a[10] = {1,200,290,12,23,12,45,67,78,90};//1.打印输出排序之前的元素顺序 printf("排序之前:\n");for (int i = 0; i < 10; ++i) { printf("%d\t",a[i]); } printf("\n");//2.排序 selection_sort(a,10);//将数组名字和数组的长度传递过去//3.打印输出排序之后的元素顺序 printf("排序之后:\n");for (int i = 0; i < 10; ++i) { printf("%d\t",a[i]); } printf("\n");return 0; }/*描述:选择排序参数:数组名和数组长度返回值:无 */void selection_sort(int array[], int len) { int temp;//双重循环for (int i = 0; i < len - 1; ++i) { for (int j = i + 1; j < len; ++j) { //如果有比其小得数就进行交换if (array[i] > array[j]) { temp = array[i]; array[i] = array[j]; array[j] = temp; } } } }
#include "stdio.h"
void bubble_sort(int array[], int len);int main(int argc, char const *argv[]) { int a[10] = {1,200,290,12,23,12,45,67,78,90};//1.打印输出排序之前的元素顺序 printf("排序之前:\n");for (int i = 0; i < 10; ++i) { printf("%d\t",a[i]); } printf("\n");//2.排序 bubble_sort(a,10);//将数组名字和数组的长度传递过去//3.打印输出排序之后的元素顺序 printf("排序之后:\n");for (int i = 0; i < 10; ++i) { printf("%d\t",a[i]); } printf("\n");return 0; }/*冒泡排序函数参数:数组和数组的长度返回值:无 */void bubble_sort(int array[], int len) { //因为i的值每变化一次,就跑了一趟,按照冒泡的思想,已经有了一个数下沉//没有必要和已经下沉了得数比较int temp;//1.控制着第几趟for (int i = 0; i < len - 1; ++i) { //2.从第一个开始往后比较,如果大于就进行交换,否则不换for (int j = 0; j < len - 1 - i ; ++j) { if (array[j] > array[j + 1]) { temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } } } }