当前位置:   article > 正文

关于快速排序_录音文件删掉一个后怎么样快速排序

录音文件删掉一个后怎么样快速排序

关于快速排序的一些知识以及代码实现

  1. 快速排序算法通过多次比较和交换来实现排序,其排序流程如下:
    (1)首先设定一个分界值,通过该分界值将数组分成左右两部分。
    (2)将大于或等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的左边。此时,左边部分中各元素都小于或等于分界值,而右边部分中各元素都大于或等于分界值。
    (3)然后,左边和右边的数据可以独立排序。对于左侧的数组数据,又可以取一个分界值,将该部分数据分成左右两部分,同样在左边放置较小值,右边放置较大值。右侧的数组数据也可以做类似处理。
    (4)重复上述过程,可以看出,这是一个递归定义。通过递归将左侧部分排好序后,再递归排好右侧部分的顺序。当左、右两个部分各数据排序完成后,整个数组的排序也就完成了。
  2. 代码实现:
public class QuickSort {
 public static int[] quicksort(int[] list,int start,int end) {
  int qiv=list[start];
  int i=start;
  int j=end;
  while(i<j) {
   while(i<j&&(list[j]>qiv)) {j--;}
   while(i<j&&(list[i]<qiv)) {i++;}
   if(list[i]==list[j]&&(i<j)) {i++;}
   else {
    int temp=list[i];
   list[i]=list[j];
   list[j]=temp;}
  }
  if(i-1>start) list=quicksort(list,start,i-1);
  if(j+1<end) list=quicksort(list,j+1,end);
  return list;
 }
 public static void main(String[] args) {
  int[] a=new int[] {7,9,10,6,1,2,3,4};
  int len=a.length;
  int[] result=quicksort(a,0,len-1);
  for(int m:a) {
   System.out.println(m);
  }
 }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/278135
推荐阅读
相关标签
  

闽ICP备14008679号