- 浏览: 18031 次
- 性别:
- 来自: 青岛
最新评论
文章列表
折半插入排序是对直接插入排序的升级算法,直接插入排序算法在大数据量面前排序效率是比较低的,折半插入排序的算法对直接插入排序算法的改进就是“查找插入位置”上的算法上的改进,由于需要查找的数据在数组上正好是有序的部分,那么可以非常方便的使用折半查找的算法查找插入的位置。
import java.util.Scanner;
public class BInsertSort{
public static void main(String args[]){
Scanner scanner=new Scanner(System.in);
int total=scanner.next ...
插入排序的思想是将数组分为前面有序和后面无序两部分,每次取后面无序部分的第一个数插入到前面有序的部分中,使得插入之后前面有序的那一部分仍然有序。
import java.util.Scanner;
public class InsertSort{
public static void main(String args[]){
Scanner scanner=new Scanner(System.in);
int total=scanner.nextInt();
int[] array=new int[1024];
for(int i=0 ...
冒泡排序的思想是从前往后找最大值,然后将最大值放到最后,给人的感觉就像是气泡从水底升到水面的时候一点点膨胀变大的样子差不多,所以该排序算法的名字为“冒泡排序”;虽然核心依然是找最大值,但是找最大值的方法却有不同,如果只是普通的找最大值,只需要定义一个MaxValue保存第一个值,然后依次向后找即可;但是在冒泡排序中,找最大值的方法是"交换",相邻两个数进行比较,如果前者大于后者,则进行交换
import java.util.Scanner;
public class BubbleSort{
public static void main(St ...
选择排序的核心思想就是从前往后依次找到最小的数放到前面,第一次找0~n-1之间最小的数放到0上;第二次找1~n-1之间最小的数放到1上,依次类推,但是只找n-1次,也是就是说最后一次不要找了,因为最后一个数字一定是有序的。
import java.util.Scanner;
public class SelectSort{
public static void main(String args[]){
Scanner scanner=new Scanner(System.in);
int total=scanner.nextInt();
int[] ...
顾名思义,归并排序的核心思想就是“归并”,将两个有序的数列进行“二路归并”能够非常快速的实现合并成一个有序数列:
public static void mergeArray(int[] array,int[] temp,int low,int midLoc,int high){
int i=low;
int j=midLoc+1;
int k=0;
while(i<=midLoc&&j<=high){
if(array[i]<array[j]){
temp[k++]=array[i];
i++;
} ...
快速排序的原理就是使用某个中间值将数组切割成两部分,一部分比中间值都小,另一部分比中间值都大,这是一次排序的作用;分别对两部分进行同样的操作,直到只剩下一个数,这样最终的数组就变成了有序的。
以下是java实现:
package com.kdyzm.sort.quicksort;
import java.util.Scanner;
/**
* 快速排序相关P272
*
* @author kdyzm
*
*/
public class QuickSortDemo {
public static void main(String[] a ...