编程算法实现-常用8类型排序算法

一、java常用排序算法实现

        //java排序方法
        //https://www.cnblogs.com/xudong-bupt/p/3168618.html
        //testArraysSort();
        
        //5.java常见排序方法
        //https://www.cnblogs.com/10158wsj/p/6782124.html?utm_source=tuicool&utm_medium=referral

二、代码结构实现部分构建内容

package helloWorld;

import java.util.Arrays;

public class firstDemo {
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
        //1.两个参数求和
		//int []sum={0,1,2,3,4,5,6,7,8,9};
		//twoSum(sum,5);
		
		//2.顺序查找
		//testSequenceSearch();
		
		//3.折半查找
		//testBinarySearch();
		
		//4.使用java arrays。sort排序方法
		//java排序方法
		//https://www.cnblogs.com/xudong-bupt/p/3168618.html
		//testArraysSort();
		
		//5.java常见排序方法
		//https://www.cnblogs.com/10158wsj/p/6782124.html?utm_source=tuicool&utm_medium=referral
		
		
	}
	public static void testArraysSort(){
		int []testData = {2,3,4,5,9,7,13,15,21,23,24,31};	
		for(int i=0;i<testData.length-1;i++){
			System.out.println("未进行排序数组标号:i-" + i+",排序数组数值:"+testData[i]);
		}
		//使用Arrays.sort进行排序
		Arrays.sort(testData);
		for(int i=0;i<testData.length-1;i++){
			System.out.println("使用排序算法排序后,进行排序数组标号:i-" + i+",排序数组数值:"+testData[i]);
		}
		
	}
	public static void testBinarySearch(){
		int []testData = {2,3,4,5,9,7,13,15,21,23,24,31};		
		System.out.println("print out current order number:" + BinarySearch(testData,23));	
	}
	
	//折半查找,前提使用(已经排序好的数组)
	public static int BinarySearch(int []sz,int key){
		int low =0;
		int high = sz.length-1;
		//循环判断当前数值
		while(low < high) {
			int mid = (low + high)/2;
			if(key == sz[mid]){
				return mid;
			}else if(sz[mid]<key) {
				//减少折半查找次数
			    low =mid + 1;	
			}else {
				//减少折半查找次数,high
				high =mid - 1;
			}			
		}
		
		return -1;
	}
	public static void testSequenceSearch(){
		int []testData = {2,3,4,5,9,7,34,13,12,43,21,11};		
		System.out.println("print out current order number:" + SequenceSearch(testData,34));	
	}
    //顺序查找
	public static int SequenceSearch(int[] sz, int key) {
		for (int i = 0; i < sz.length; i++) {
			if (sz[i] == key) {
				return i;
			}
		}
		return -1;
	}
	
	
	//两个数求和
	public static int[] twoSum(int[] nums, int target) {
		int resultSum[]= new int[2] ;
		for (int i = 0;i< nums.length-1 ;i ++ ) {
			for (int j=i+1;j<nums.length ;j++) {
				if(target == (nums[i]+nums[j])) {
					resultSum[0] = i;
					resultSum[1] = j;
					break;
				}
			}
		}
		System.out.println("first value:"+ resultSum[0] +",second value:" + resultSum[1]);
		return resultSum;  
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值