排序之令人凌乱的那些小程序

写排序写了三天了,程序看起来好像很简单,但是我还是写了三天,有一种智商被无情地碾压的感觉,怀疑人生了,我只有c语言的基础,基础也不是很好,学了一个多月的java,说实话,我有点吃力了,和周围的小伙伴相比较更是有着深深的挫败感......但是别人的信手拈来和流畅的思维也是一步步累积起来的,所以呀,最大的敌人永远是自己,不要被自己设防的心理逼到阴暗的墙角,就像第一次戴隐形眼镜一样,完全是自己吓唬自己.....同时我们也要提高自主学习的效率,不能什么都依赖老师,尽快把基础补上去。一句话概括就是:要做自己的主宰者也要看到与别人的差距!碎碎念就到此结束,下面进入正题:

我只做了三种简单的排序:

一:选择排序

思路:规定一个最大值,然后不断的和下面的数进行比较,如果比它小就互换位置。

public class xuanze {
    public static void main(String[] args) {
        xuanze X = new xuanze();
        int[] A = { 50, 21, 32, 58, 40, 78, 24, 12, 6, 8,98,210 };
        X.sort(A);
        for (int i = 0; i < A.length; i++) {
            System.out.print(A[i] + "\t");
        }
        System.out.println();
    }
    public void sort(int[] A) {
        for (int i = 0; i < A.length; i++) {
            int max = i;
            for (int j = i+1; j < A.length; j++) {
                /*如果要使运行的结果是顺序,可以写成:
                 * for (int j = 0; j < A.length; j++){}
                 */
                if (A[max] < A[j]) {
                    max = j;
                }
                //交换
                if (max != i) {
                    int temp = A[max];
                    A[max] = A[i];
                    A[i] = temp;
                }
                /*if (A[max] < A[j]) {
                    max = j;
                    int temp = A[max];
                    A[max] = A[i];
                    A[i] = temp;
                }
                 */
            }

        }

    }
}

二:冒泡排序法

思路:第一个数和第二个数比,第二个数和第三个数比.......以此类推,比较之后互换位置

public void mp(int[] a) {
        for (int j = 0; j < a.length - 1; j++) {//控制要比较多少轮
            for (int i = 0; i < a.length - 1; i++) {//控制每一轮要比较
                int t = i + 1;
                if (a[i] > a[t]) {
                    int d = a[i];
                    a[i] = a[t];
                    a[t] = d;
                    /*
                     * 犯的错:if (a[i] > a[t]) { int d=i;//存错啦
                     * a[i] = a[t];
                     * a[t] =a[d]; }
                     */
                }
            }
            /*方法二:
             * for (int i = 0; i < A.length-1; i++) {
            for (int j = 0; j < A.length-1; j++) {
                int tem = j;
                int t=j+1;
                if (A[tem] > A[t]) {
                    int d = A[tem];
                    A[tem]=A[t];
                    A[t]=d;
                }
            }
             */
        }
        return;
    }

三:快速排序法:

思路:选择一个基准元素,通常选择第一个元素或者最后一个元素,通过一趟扫描,将待排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素,此时基准元素在其排好序后的正确位置,然后再用同样的方法递归地排序划分的两部分。

 private static void quickSort(int[] a, int low, int high) {
            if(low<high){ //如果不加这个判断递归会无法退出导致堆栈溢出异常
                int d = sort(a,low,high);
                quickSort(a, 0, low-1);
                quickSort(a, low+1, high);//相当于 quickSort(a, 0, d-1); quickSort(a, d+1, high);
            }
        }
    public static int sort(int[] a,int low,int high) {
         int temp = a[low];//基准元素
            while(low<high){
                //找到比基准元素小的元素位置
                while(low<high && a[high]>=temp){
                    high--;
                }
                a[low] = a[high];
                while(low<high && a[low]<=temp){
                    low++;
                }
                a[high] = a[low];
            }
            a[low] = temp;
            return low;
        }

  

时间: 2024-10-11 10:16:30

排序之令人凌乱的那些小程序的相关文章

微信小程序学习指南

作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 微信小程序正式公测, 张小龙全面阐述小程序,定档1月9日上线(附90分钟演讲全文) ... 前言:新人第一坑,跳坑指南:修改后,必须保存:ctrl+S: 1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=1476434678461 2:简易教

微信小程序开源项目库汇总

微信小程序开源项目库汇总,里面集合了OpenDigg 上的优质的微信小程序开源项目库,方便移动开发人员便捷的找到自己需要的项目工具等,感兴趣的可以到GitHub上给个star. UI组件 weui-wxss ★852 - 同微信原生视觉体验一致的基础样式库 Wa-UI ★122 - 针对微信小程序整合的一套UI库 wx-charts ★105 - 微信小程序图表工具 wemark ★85 - 微信小程序Markdown渲染库 WeZRender ★36 - 微信小程序Canvas增强组件 wet

微信小程序UI组件、开发框架、实用库

UI组件 weui-wxss ★852 - 同微信原生视觉体验一致的基础样式库 Wa-UI ★122 - 针对微信小程序整合的一套UI库 wx-charts ★105 - 微信小程序图表工具 wemark ★85 - 微信小程序Markdown渲染库 WeZRender ★36 - 微信小程序Canvas增强组件 wetoast ★21 - 仿照微信小程序提供的showToast功能 wxapp-charts ★20 - 微信小程序图表charts组件 WeiXinProject ★18 - 列

微信小程序框架集合

UI组件 weui-wxss ★852 - 同微信原生视觉体验一致的基础样式库 Wa-UI ★122 - 针对微信小程序整合的一套UI库 wx-charts ★105 - 微信小程序图表工具 wemark ★85 - 微信小程序Markdown渲染库 WeZRender ★36 - 微信小程序Canvas增强组件 wetoast ★21 - 仿照微信小程序提供的showToast功能 wxapp-charts ★20 - 微信小程序图表charts组件 WeiXinProject ★18 - 列

小程序源码下载[demo整理自github]

摘自:https://www.cnblogs.com/ytkah/p/9003620.html 微信小程序的火热程度大家都有所了解,也有很多牛人写了不错的小程序,今天ytkah就整理一些github上的小程序开源项目,源码可以直接下载来用,感兴趣的朋友赶紧去看看吧!以下小程序排名按star的数量来排,数字动态变化中,请参考具体的项目 weapp-demo ★727 - 仿豆瓣电影微信小程序 wechat-weapp-gank ★537 - Gank微信小程序 SmallAppForQQ ★460

一款优雅的小程序拖拽排序组件实现

前言 最近po主写小程序过程中遇到一个拖拽排序需求. 上网一顿搜索未果, 遂自行实现. 这次就不上效果图了, 直接扫码感受吧. 灵感 首先由于并没有啥现成的小程序案例给我参考. 所以有点无从下手, 那就找个h5的拖拽实现参考参考. 于是在jquery插件网看了几个拖拽排序实现后基本确定了思路. 大概就是用 transform 做变换. 是的, 灵感这种东西就是借鉴过来的-- 确定需求 要能拖拽, 毕竟是拖拽排序嘛, 拖拽肯定是第一位. 要能排序, 先有拖拽后有天 -- 跑偏了, 拖拽完了肯定是要

JavaScript对数组进行排序小程序

JavaScript数组的sort()函数是按字符串大小排序,不能正确对一组数字进行排序下面的小程序通过一个自编的函数实现了对一组数字进行排序的功能. <script> function mysort(a){ var n=a.length; var newa=[]; var temp; for(var i=0;i<n;i++) { for(var j=i;j<n;j++) { if(a[i]>a[j]) { temp=a[i]; a[i]=a[j]; a[j]=temp; }

微信小程序富文本-wxParse的使用

最近小程序蛮火的,公司要做于是学了一点点小程序 不知道你们有没有遇到过这种问题: 从公司服务器获取的文章内容是有HTML标签格式的一段内容,但是微信是不支持这些标签的,怎么办呢? 1.一般网站后台的文章是这样的,带有很多的html标签(这里是截取的今日头条某文章内容),但是小程序并不支持,它会以文本直接显示 怎么办呢? 2.在这个时候可以考虑 wxParse wxParse信息 版本号0.1 历史版本号0.2 具体代码请查看仓库分支V1 github地址: https://github.com/

微信小程序之页面拦截器

场景 小程序有52个页面,其中13个页面无需任何身份,另外39个页面需要系统角色.对于这39个页面,如果微信用户没有系统角色,则跳转到登录页.是否有系统角色信息需要通过异步请求来获取. 需求分析&实现 对需求进行抽象,其实要的就是一个过滤器,对小程序页面的访问进行过滤,符合条件的通过,不符合条件进行其他处理. 使用过php的laravel框架的童鞋,肯定一下子就联想到了laravel框架的http中间件:HTTP 中间件提供一个方便的机制来过滤进入应用程序的 HTTP 请求,例如,Laravel