《常见的查找 排序java实现》由会员分享,可在线阅读,更多相关《常见的查找 排序java实现(5页珍藏版)》请在金锄头文库上搜索。
1、常见的查找 排序java实现/* *折半查找,要求是一个有序表 * * * */ public int searchZhe(int argNumber, int table) int low = 1; int high = table.length; int mid; System.out.println(长度: + high); System.out.println(被查元素: + argNumber); System.out.println(-); while(low = high) mid = (low + high) / 2; System.out.println(mid=+mid);
2、 if(argNumber = tablemid - 1) return mid; else if(argNumber tablemid - 1) high = mid - 1; System.out.println(high=+high); else low = mid + 1; System.out.println(low=+low); return 0;/没找到则返回零 /* *冒泡排序 从后向前冒,冒出最小的数 *param array 要查的一个数组 *return 无返回值 */ public void maoSort(int table) /* *主要用于提前结束比较,即如果一趟
3、中没有一个元素交换, *则后面还没有进行的趟也不用进行了。 */ int exchange; /临时交换变量 int temp; for(int i = 0; i i; j-) if(tablej tablej - 1) temp = tablej; tablej = tablej - 1; tablej - 1 = temp; exchange = 1; /如有交换则更改为1 /提前结束 if(exchange = 0) return; /* *快速排序:通过一趟排序将待排序记录分割成独立的两部分, *其中一部分记录的关键字均比另一部分的关键字小,再分别 *对这两部分记录继续进行排序,以达到
4、整个序列有序。 *param table-待排序数组 *param begin-待排序的起始源点 *param end-待排序的终止点 */ public static void quickSort(int table, int begin, int end) /异常处理,待排序的起始源点不能小于0且不能大于待排序的终止点 if(begin end) return; int i = begin; int j = end; int tem; /存放界点,用区间的第一个元素作基准 tem = tablebegin; /从区间两端交替向中间扫描,直至i=j为止 while(i != j) /从右向左扫描,找第一个小于tem的元素 while(j i) & tablej tem) j-; /从左向右扫描,找第一个大于tem的元素 while(i j) & tablei tem) i+; /满足条件交换 if(i j) int change; change = tablej; tablej = tablei; tablei = change; /分成两部分记录 tablei = tem; /对界点前部分记录排序 quickSort(table, begin, i - 1); /对界点后部分记录排序 quickSort(table, i + 1, end);