论坛首页 入门技术论坛

Java数据结构和算法--排序

浏览 5678 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-09-29  
马上要找工作了,所以的把原来的重要的课程再回顾一下,我重要复习的是数据结构,在网上下了<<Java数据结构和算法>>这本书,准备用3个星期看完.看到不如做到,做到不如写到,我的记忆力不是很好,为了看了之后不会忘记,我把学习的体会和程序代码贴上来,以供以后参考.
(1)冒泡排序
package ChapterOne;

public class Bubble {

	public static void main(String[] args) {
		Bubble b = new Bubble();
		for(int i = 0;i < arr.length;i++){
			System.out.print(arr[i]+" ");
		}
		System.out.println();
		b.bubble();
		for(int i = 0;i < arr.length;i++){
			System.out.print(arr[i]+" ");
		}
                  System.exit(0);
	}
	/**
	 * 冒泡排序
	 */
	public void bubble(){
		for(int i = arr.length-1;i > 1;i--){
			for(int j = 0;j < i;j++){
				if(arr[j] > arr[j+1])
					swap(j,j+1);
			}
		}
	}
	/**
	 * 交换数组中的两个数
	 * @param one
	 * @param two
	 */
	public void swap(int one,int two){
		long temp = arr[one];
		arr[one] = arr[two];
		arr[two] = temp;
	}
	
	static long arr[] = new long[20];
	/**
	 * 随机初始化一个长度为20的数组
	 */
	static{
		for(int i = 0;i < arr.length;i++){
			arr[i] = (long) (Math.random()*100);
		}
	}
}


(2)选择排序
package ChapterOne;

public class SelectSort {
	/**
	 * 初始化一个长度为size的数组
	 * @param size
	 */
	public SelectSort(int size){
		arr = new long[size];
		for(int i = 0;i < size;i++){
			arr[i] = (long) (Math.random()*100);
		}
	}
	/**
	 * 选择排序
	 * @return
	 */
	public long[] sort(){
		for(int i = 0;i < arr.length;i++){
			int minIndex = findMin(i);
			long min = arr[minIndex];
			//子数组中的所有的数后移一个位置
			for(int j = minIndex;j > 0;j--)
				arr[j] = arr[j-1];
			//把最小的数插入到最前端
			arr[0] = min;
		}
		return arr;
	}
	/**
	 * 查找一start为起始位置到数组最后位置这段子数组中最小的一个数的位置
	 * @param start
	 * @return
	 */
	public int findMin(int start){
		int min = start;
		for(int i = min;i < arr.length;i++)
			if(arr[min] > arr[i])
				min = i;
		return min;
	}
	
	public static void main(String[] args) {
		SelectSort ss = new SelectSort(10);
		ss.print();
		long oa[] = ss.sort();
		for(int i = 0;i < oa.length;i++)
			System.out.print(oa[i]+" ");
		System.out.println();
		System.exit(0);
	}
	public void print(){
		for(int i = 0;i < arr.length;i++){
			System.out.print(arr[i]+" ");
		}
		System.out.println();
	}
	
	long arr[];
}
   发表时间:2007-09-30  
yongsky 写道
马上要找工作了,所以的把原来的重要的课程再回顾一下,我重要复习的是数据结构,在网上下了<<Java数据结构和算法>>这本书,准备用3个星期看完.看到不如做到,做到不如写到,我的记忆力不是很好,为了看了之后不会忘记,我把学习的体会和程序代码贴上来,以供以后参考.
(1)冒泡排序
package ChapterOne;

public class Bubble {

	public static void main(String[] args) {
		Bubble b = new Bubble();
		for(int i = 0;i < arr.length;i++){
			System.out.print(arr[i]+" ");
		}
		System.out.println();
		b.bubble();
		for(int i = 0;i < arr.length;i++){
			System.out.print(arr[i]+" ");
		}
                  System.exit(0);
	}
	/**
	 * 冒泡排序
	 */
	public void bubble(){
		for(int i = arr.length-1;i > 1;i--){
			for(int j = 0;j < i;j++){
				if(arr[j] > arr[j+1])
					swap(j,j+1);
			}
		}
	}
	/**
	 * 交换数组中的两个数
	 * @param one
	 * @param two
	 */
	public void swap(int one,int two){
		long temp = arr[one];
		arr[one] = arr[two];
		arr[two] = temp;
	}
	
	static long arr[] = new long[20];
	/**
	 * 随机初始化一个长度为20的数组
	 */
	static{
		for(int i = 0;i < arr.length;i++){
			arr[i] = (long) (Math.random()*100);
		}
	}
}


(2)选择排序
package ChapterOne;

public class SelectSort {
	/**
	 * 初始化一个长度为size的数组
	 * @param size
	 */
	public SelectSort(int size){
		arr = new long[size];
		for(int i = 0;i < size;i++){
			arr[i] = (long) (Math.random()*100);
		}
	}
	/**
	 * 选择排序
	 * @return
	 */
	public long[] sort(){
		for(int i = 0;i < arr.length;i++){
			int minIndex = findMin(i);
			long min = arr[minIndex];
			//子数组中的所有的数后移一个位置
			for(int j = minIndex;j > 0;j--)
				arr[j] = arr[j-1];
			//把最小的数插入到最前端
			arr[0] = min;
		}
		return arr;
	}
	/**
	 * 查找一start为起始位置到数组最后位置这段子数组中最小的一个数的位置
	 * @param start
	 * @return
	 */
	public int findMin(int start){
		int min = start;
		for(int i = min;i < arr.length;i++)
			if(arr[min] > arr[i])
				min = i;
		return min;
	}
	
	public static void main(String[] args) {
		SelectSort ss = new SelectSort(10);
		ss.print();
		long oa[] = ss.sort();
		for(int i = 0;i < oa.length;i++)
			System.out.print(oa[i]+" ");
		System.out.println();
		System.exit(0);
	}
	public void print(){
		for(int i = 0;i < arr.length;i++){
			System.out.print(arr[i]+" ");
		}
		System.out.println();
	}
	
	long arr[];
}
一天,男孩和女孩吵架了。他不再对她说“我爱你”,
当然她也不再对他说“我也是”。一天晚上,
他们谈到了分手的事,背对背睡下。半夜,
天上打雷了。第一声雷响时,他醒了,
下意识地猛地用双手去捂她的耳朵,
才发现不知何时他又拥着她。雷声紧接着炸,
假装什么也没发生,可谁都没有睡着,
她想也许他还爱我,生怕我受一点点吓。
他想,也许她还爱我,不然她不会流泪。
爱的最高境界是经得起平淡的流年。
世界上最美的木乃侯,这是一个古老的符咒,
请在收到此消息后发经三个论坛。
等你发完后看看三天后就能得到心爱的人。
不发的话你将有霉运一个月,同学说他试过了,很灵
0 请登录后投票
   发表时间:2007-09-30  
顶,祝你找到称心如意的工作
0 请登录后投票
   发表时间:2007-12-05  
非常感谢楼上的兄弟,现在我已经拿到4个公司的offer了,呵呵.
0 请登录后投票
   发表时间:2008-01-05  
有 什么 比较好的 数据结构 入门的书籍吗  国外的
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics