`
kingxianstar
  • 浏览: 19665 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

数组的排序算法(插入排序、快速排序)

阅读更多
在实现数组元素排序时,排序的算法有很多,例如冒泡排序法,选择排序法,插入排序法以及快速排序法,来介绍插入排序和快速排序的具体实现吧
插入排序法
   插入排序法德基本思路是:将要排序的数组分成两部分,每次从后面的数组部分中取出索引最小的数组元素,插入到前面数组的适当位置中。通常在数组开始排序时,将数组的第一个元素作为一组,后面的所有元素被当成另一组。插入排序法德实现代码如下:
public class insertSort{
	public static void main(String args[]){
		int arr[]={1,-33,-55,-77,88,91,-232,323,2,3,4,12,2,22,222,-12,-45,-56,00};
		charu(arr);
		for(int i=0;i<arr.length;i++){
			System.out.println(arr[i]);
		}
	}

	public static int[] charu(int[] arr){
		for(int i=1;i<arr.length;i++){
			int tmp=arr[i];
			int j=i-1;
			while(tmp<arr[j]){
				arr[j+1]=arr[j];
				j--;
				if(j==-1){
					break;
				}
			}
			arr[j+1]=tmp;
			}
				return arr;
			}


}



快速排序法
快速排序法是当今被认为最好的排序算法之一,它的基本思路是:讲一个大的 数组的排序问题,分解成2个小的数组的排序,而将每个小的数组的排序又可以继续分解成更小的2个数组,这样一直递归分解下去, 直到数组的大小为最大为2。快速排序的实现代码如下:
public class quickSort{
	public static void main(String args[]){
		int[] array={12,32,51,9,2,5,4,43435,7678,899,90,1111255557,653,1,23,2,4,4,4};
		kuaisu(array);
		for(int i=0;i<array.length;i++)
				System.out.println(array[i]);
		}

		public static int[] kuaisu(int[] array){


					return quicksort(array,0,array.length-1);
		}


		public static int[] quicksort(int[] arr,int left,int right){
			int t;
			if(left<right){
				int s=arr[left];
				int i=left;
				int j=right+1;
				while(true){
					while(i+1<arr.length&&arr[++i]<s);
					while(j-1>-1&&arr[--j]>s);
					if(i>=j){
						break;

					}else{
						t=arr[i];
						arr[i]=arr[j];
						arr[j]=t;
					}
				}
				arr[left]=arr[j];
				arr[j]=s;
				quicksort(arr,left,j-1);
				quicksort(arr,j+1,right);
			}
			return arr;
		}

	}


网上流传着一个关于比较冒泡排序和快速排序的动画视频,感兴趣的可以看一下。
http://www.tudou.com/programs/view/htKY1-Rj9ZE/

现在给自己留下一个问题:从文件中读取数据,并将其存入到数组中,排序好之后再读入到文件中。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics