当前位置: 首页 > news >正文

自媒体可做外链网站做网络营销推广

自媒体可做外链网站,做网络营销推广,软件应用大全,网页特技的网站思路: (1)首先定义一个递归函数:qucikSort(int [ ] arr,int l,int r)。函数的定义:给定一个数组arr,对它在[l,r]这个区间内的元素进行排序,从而使得整个数组在[l,r]这个区间内有序。 &#xff0…

思路:

        (1)首先定义一个递归函数:qucikSort(int [ ] arr,int l,int r)。函数的定义:给定一个数组arr,对它在[l,r]这个区间内的元素进行排序,从而使得整个数组在[l,r]这个区间内有序。

        (2)每次排序后得到一个索引p,索引p左边的元素都小于它,索引p右边的元素都大于它;此时我们就可以到[l,p - 1]、[p+1,r]这两个区间上继续排序,直至l>=r,区间内没有元素可排序为止。

        (3)对区间[l,r]排序时,首先确定基准元素pv(选择区间内最右的元素arr[r]),随后维护两个指针i、j,j指针用于寻找在[l,r - 1]区间内比pv小的元素,i指针用于在j指针找到比pv小的元素时,交换i、j两个指针指向元素的位置,同时i指针向右移动,为下一次位置交换做准备。

        (4)退出循环后,区间[0,i - 1]区间的所有元素都小于pv,[i,r - 1]区间的所有元素都大于pv。此时再交换i、r两个索引处的元素位置,基准元素被交换到了索引i处,基准元素的位置固定,后续不再参与排序。

Code:

        (1)generate方法,随机生成一个需要排序的数组:

//生成一个长度为n,元素值在1-v之间的整型数组private static int [] generate(int n,int v){int [] result = new int[n];for (int i = 0; i < n; i++) {result[i] = (int) ((Math.random() * v) + 1);}return result;}

        (2)递归函数quickSort:

//递归函数定义:对数组arr在[l,r]区间上的元素进行排序private static void quickSort(int [] arr,int l,int r){//l == r:区间内只有一个元素,不用排序//l > r:区间内没有元素,不用排序if(l >= r)return;//p:排好序的元素的索引,在arr[p]左边都是小于它的元素,右边都是大于它的元素int p = partition(arr,l,r);quickSort(arr,p + 1,r);quickSort(arr,l,p - 1);}

        (3)swap方法,交换两个元素arr[a]、arr[b]的位置:

//交换arr[a]、arr[b]两个元素的为止private static void swap(int [] arr,int a,int b){int temp = arr[a];arr[a] = arr[b];arr[b] = temp;}

        (4)关键的排序方法:
 

private static int partition(int [] arr,int l,int r){//选取[l,r]这个区间内,最右边的元素:arr[r]作为基准元素pvint pv = arr[r];//i:在[l,r]这个区间内,如果元素比基准元素小,那么这个元素就会被交换到i索引处int i = l;//从索引l开始遍历整个区间for(int j = l;j < r;j ++){//碰到比基准元素pv小的元素时if(arr[j] < pv) {//交换arr[i]、arr[j]两个元素的位置swap(arr, i, j);//i++是为了下一次交换位置做准备i++;}}//循环结束时,[l,r - 1]这个区间内,所有比基准元素小的元素都在[0,i - 1]这个区间上//此时交换arr[i]、arr[r]两个元素的位置,基准元素此时就是arr[i]//在arr[i]左边都是小于它的元素,在arr[i]右边都是大于它的元素swap(arr,i,r);//返回索引i,索引i上的元素位置不再发生变动return i;}

        (5)测试:

public static void main(String[] args) {//生成一个长度为10,元素值在1-10之间的数组int[] test = generate(10, 10);System.out.println("排序前:"+Arrays.toString(test));quickSort(test,0,test.length - 1);System.out.println("排序后:" + Arrays.toString(test));}

        (6)输出结果:

总结:

        (1)首先明确base case:当l >= r时,数组不需要进行排序。

        (2)每次排序确定一个索引位置p,p左边都是小于它的元素,p右边都是大于它的元素,它不再参与排序。

        (3)索引位置p确定后,需要排序就只剩下区间:[l,p - 1]、[p + 1,r],不断递归,直至l >= r时,排序结束。

http://www.hengruixuexiao.com/news/51120.html

相关文章:

  • 公司要建设网站需要那些程序俄罗斯搜索引擎
  • 找潍坊做网站的淘宝流量网站
  • 澄海网站建设公司网络营销岗位
  • phpcms网站seo怎么做seo外链是什么
  • wordpress加密数据库文件长春seo公司哪家好
  • 阿里云网站怎么备案域名网站推广优化服务
  • 方城微网站开发信息流广告投放公司
  • 手机网站生成小程序扬州seo博客
  • 企业专业网站建设的必要性尚硅谷培训机构官网
  • 时间轴网页网站模板新乡网站优化公司
  • 织梦网站图片代码网络广告策划书案例
  • 中山河北建设信息网站国际网站平台有哪些
  • 做网站设计的广告公司网络营销方案策划
  • 网站建设价格明细表和网站预算现在百度推广有用吗
  • 做网站空间哪家好百度推广是做什么的
  • 两个网站开发swot分析文案写作软件app
  • 西地那非片能延时多久丁的老头seo博客
  • 电邮注册网站网址ip地址查询工具
  • 廊坊做网站电商培训机构有哪些?哪家比较好
  • 做的网站百度搜索不出来免费职业技能培训网站
  • 网站运营有前途吗百度联盟官网登录入口
  • 深圳企业网站制作百度指数工具
  • 行业网站推广怎么做四川seo推广
  • 在上阿里云做网站北京百度网站排名优化
  • 不良网站浏览窗口宁波网站推广平台效果好
  • 哪个网站可以免费做初级试题无锡百度竞价公司
  • 深圳做男装什么网站容易找工海外新闻发布
  • 泉州企业网站制作网店运营培训
  • 北京注册公司麻烦吗windows优化工具
  • 地方信息网站源码优化一个网站需要多少钱