package com.strongit;
public class PaiXu {
private int[] data = {11,3,17,1,13,21,10,15,6,4};
public PaiXu() {
print();
//quickSort(data,0,data.length-1);
selectSort(data);
int pos = binSearch(data,0,data.length-1,13);
System.out.println("pos="+pos);
}
//快速排序
public void quickSort(int[] r,int s,int t) {
int i = s;
int j = t;
if(s < t) {
int temp = r[s];
do {
while(i < j && r[j] >= temp) j--;
if( i < j) {
r[i] = r[j];i++;
}
while(i < j && r[i] <= temp) i++;
if(i < j) {
r[j] = r[i];j--;
}
} while(i < j);
r[j] = temp;
quickSort(r,s,j-1);
quickSort(r,j+1,t);
}
print();
}
//选择排序
public void selectSort(int[] r) {
int n = r.length;
int i = 0;
int j = 0;
int k = 0;
int temp = 0;
for(i = 0; i<n; i++) {
k = i;
for(j = i+1; j <n; j++ ) {
if(r[j] < r[k]) {
k = j;
}
}
temp = r[i];
r[i] = r[k];
r[k] = temp;
}
print();
}
//二分查找
public int binSearch(int[] r,int low,int height,int k) {
int mid = 0;
int i = 0;
int find = 0;
while(low <= height && find != 1) {
mid = (low + height) / 2;
if(r[mid] < k) {
low = mid + 1;
} else if(r[mid] > k) {
height = mid - 1;
} else {
i = mid;
find = 1;
}
}
if(find != 1) {
i = -1;
}
return i;
}
public void print() {
for(int i : data) {
System.out.print(i+" , ");
}
System.out.println();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new PaiXu();
}
}
分享到:
相关推荐
实现对汽车牌照按多关键字排序及快速查找。
汽车牌照的排序与查找问题-数据结构与算法课程设计报告.pdf
本程序共设计了排序查找的6个基本操作运算,分别是直接插入排序,冒泡排序,直接选择排序,堆排序,希尔排序,以及二分查找等6个操作。附带实验报告。
排序和查找算法速度排序和查找算法速度排序和查找算法速度排序和查找算法速度
常用排序查找算法详解:各种排序查找算法
查找與排序 查找與排序 查找與排序 查找與排序 查找與排序 查找與排序
c语言 查找与排序 c语言 查找与排序代码整理 总结
printf("\t*************选择排序实验报告****************\n"); printf("\t***********> 1.顺序查找 <*******\n"); printf("\t***********> 2.二分查找(非递归) <*******\n"); printf("\t***********> 3.二分...
汽车牌照的排序与查找问题汽车牌照的排序与查找问题汽车牌照的排序与查找问题汽车牌照的排序与查找问题汽车牌照的排序与查找问题
多种排序查找算法的java实现源码,包括选择排序,冒泡排序,改进版冒泡排序,二分查找,归并排序等等
C语言排序查找源代码,总结了常见的方法以及代码实现,
软件技术基础 数据结构 排序算法 查找算法
二叉排序树 折半查找
分别用3个函数完成: (1)输入10个职工的姓名和职工号 (2)按职工号从小到大排序,职工...(3)根据职工号,用折半查找的方法查找该职工的姓名 主函数调用这3个函数,并在主函数中输入(3)中的职工号,输出查询结果
binary sort,二分法查找,binary search, 二分法排序,merge sort 混合排序,shell sort 希尔排序,insertion sort 插入排序。数据结构 data structure
最近在研究数据结构这本书,自己动手实现的一个二叉查找排序树的类BinSortTree,实现数据的插入,查找,删除,层序遍历,中序遍历等操作,熟悉数据结构的朋友都知道,根据二叉排序树的定义,中序遍历后得到的序列...
可以对数组中的元素进行排序和查找,输入数组,先排序后查找
C++编写的查找算法,用二叉排序树查找,是在VC++6.0上实现的
常见的几种排序方式,包括选择排序,冒泡排序,快速排序,希尔排序,堆排序,插入排序。vs2008实现,对话框方式,主要实现字符串的由小到大排序。点击“几种排序方法.vcproj“运行。字符集使用多字节集,不能用...
经典的10大排序算法,还有二分法,二叉树的实现,和分块查找