国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

C語言快速排序與二分查找算法示例

2020-01-26 13:47:22
字體:
來源:轉載
供稿:網友

本文實例講述了C語言二分排序與查找算法。分享給大家供大家參考,具體如下:

題目:首先產生隨機數,再進行快速排序,再進行二分查找。

實現代碼:

#include <stdio.h>#include <stdlib.h>#include <time.h>void quiksort(int a[],int low,int high){ int i = low; int j = high; int temp = a[i]; if( low < high) {  while(i < j)  {   while((a[j] >= temp) && (i < j))   {    j--;   }   a[i] = a[j];   while((a[i] <= temp) && (i < j))   {    i++;   }   a[j]= a[i];  }  a[i] = temp;  quiksort(a,low,i-1);  quiksort(a,j+1,high); } else {  return; }}int search(int x, int v[], int n){ int low, high, mid; low = 0; high = n - 1; while ( low <= high ) {  mid = (low + high) / 2;  if(x < v[mid]){   high = mid - 1;  }  else if(x > v[mid]){   low = mid + 1;  }  else{   return mid;  } } return -1;}int main(){ int arry[100] ; int i,j; srand((unsigned)time(NULL)); //產生不同的隨機數 for(i=0;i<100;i++) {  j = rand()%100;  //if(i%2==0) //產生負數  //j =-j;  arry[i]=j; } int location; int number ; quiksort(arry,0,99);//隨機數先進行排序 for(i=0;i<100;i++) {  printf("%d ",arry[i]); } printf("/n"); printf("請輸入你要查找的數字"); scanf("%d",&number); location = search(number, arry, 100); printf("%d/n", location); return 0;}

心得與體會:

二分查找比較容易理解,就是折半查找法,所以要求數據必須是有序數列。不斷比較中間值。

快速排序是應用了遞歸,首先確定一個關鍵數據,再把比他大的放到后面,比他小的放到前面,再分別對這兩部分進行同樣的操作。

希望本文所述對大家C語言程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 固安县| 拜城县| 阳春市| 呈贡县| 临泉县| 大兴区| 宁武县| 武冈市| 邓州市| 钟山县| 正宁县| 武宣县| 旬邑县| 遂川县| 北辰区| 兴和县| 阜宁县| 融水| 和田市| 白沙| 东港市| 南宫市| 镇远县| 津南区| 石楼县| 三都| 阜阳市| 仲巴县| 历史| 荥阳市| 自贡市| 祁门县| 渭南市| 舞钢市| 肥东县| 陇西县| 铜川市| 平顺县| 嘉兴市| 武陟县| 连州市|