JAVA程序设计(08)-----数组初级应用 排序

来源:互联网 发布:关于文艺 知乎 编辑:程序博客网 时间:2024/05/11 22:37

数组初级应用,建立数组,数组中大小比较,顺序排列

package com.lovo;/** * 创建一个数组 里面放10个100以内随机数排序 冒泡法 简单选择法 *  * @author Abe *  */public class Test04 {public static void main(String[] args) {int[] f = new int[10];for (int i = 0; i < f.length; i++) {//创建10个随机数f[i] = (int) (Math.random() * 100 + 1);System.out.print(f[i] + "  ");}<span style="white-space:pre"></span>// 冒泡法(相邻两数比较)boolean swapped = true; <span style="white-space:pre"></span>// (优化1):在数列本身就接近目的的时候快速结束. 方法是:判断有没有发生过交换<span style="white-space:pre"></span><span style="white-space:pre"></span>//前面一个数和后面一个数进行比较,前面的大就交换位置,一轮结束后最大的到了最后尾,下一轮该数就不在参加判断了<span style="white-space:pre"></span>//N个数,两两相邻比较,就只用比较(N-1)次。<span style="white-space:pre"></span>//i = 1 开始到 i < f.length  就是N-1for (int i = 1; swapped && i < f.length; i++) {swapped = false; <span style="white-space:pre"></span>// (优化1)每轮开始 先设定清零<span style="white-space:pre"></span>//此处j = 1 开始,和上面的i不一样,j[1]已经数组是第二个数了。for (int j = 1; j < f.length - (i - 1); j++) {<span style="white-space:pre"></span>//第一轮N - 1,之后每轮都比上一轮少一次if (f[j] < f[j - 1]) {swapped = true;<span style="white-space:pre"></span>// (优化1)有交换就继续,没交换说明已经按从小到大排列好了,停止程序f[j] = f[j] ^ f[j - 1];<span style="white-space:pre"></span>//装逼f[j]和f[j-1]交换方法f[j - 1] = f[j] ^ f[j - 1];f[j] = f[j] ^ f[j - 1];}}}System.out.print("\n");for (int i = 0; i < f.length; i++) {System.out.print(f[i] + "  ");}System.out.print("\n");// 简单排序法(第一个数和之后的每一个数比较)for (int i = 0; i < f.length; i++) {f[i] = (int) (Math.random() * 100 + 1);System.out.print(f[i] + "  ");}//第一个数和后面所有的进行比较,选出最大的和第一个数进行交换,N-1轮for (int i = 0; i < f.length - 1; i++) {int max = i;//把找到的最大值的位置付给max,最后max和最前面的数换位,然后最前面的数固定,下一轮从下一个数开始比较for (int j = i + 1; j < f.length; j++) {if (f[j] > f[max]) {max = j;}}if (i != max) {<span style="white-space:pre"></span>//装逼换位法最大的问题来了。同一个数(不是值相等的两个数)用此换位法,会导致自己变0了f[max] = f[max] ^ f[i];f[i] = f[max] ^ f[i];f[max] = f[max] ^ f[i];}}System.out.print("\n");for (int i = 0; i < f.length; i++) {System.out.print(f[i] + "  ");}}}



0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 假体隆胸一个月了躺着睡很硬怎么办 假体隆胸半月俩胸大小不一样怎么办 假体隆胸拆线后还是起不来床怎么办 假体隆胸术后6天 天天胀痛怎么办 阴部大腿根长了个疙瘩有点痛怎么办 加盟费交了总部不做事怎么办 仓鼠从桌子摔下来后走路别扭怎么办 习惯了一个人天天找你聊天怎么办 来完月经外阴湿疹就严重怎么办 宝宝不肯喝开水尿黄黄的怎么办 做阴超做一半发现忘记换套了怎么办 穿裙子时拉链总往下掉怎么办 子宫内膜厚姨妈来的久怎么办 胸小胸罩往上跑肩带往两边掉怎么办 白衣服弄上姨妈血了洗了变黄怎么办 货物丢失了我感觉没丢这么多怎么办 想穿短裙 但是膝盖怕凉怎么办 被老公看到内裤很脏还有屎怎么办 排卵期同房了不知道怀没怀孕怎么办 清理空调时湿纸巾被卷进去怎么办 超市买的尿不湿质量太差怎么办 把卫生巾和衣服一起洗了怎么办 全面屏面对vo华为手机怎么办屏 雅漾喷雾的喷头坏了怎么办 悦诗风吟水里面有小颗粒怎么办 林肯mkz钥匙锁在车内怎么办 八四消毒液弄到衣服上怎么办 微信朋友圈发过的文章想修改怎么办 白色衣服被洗衣液染色了怎么办 准迁证和迁移证不想迁了怎么办 出了迁移证又想迁到其他地方怎么办 高中的会考如果没g合格怎么办 鞋子里自带的鞋垫坏了怎么办 入厕纸把私处伤了一下怎么办? 夏天做月子用姨妈巾热怎么办 涂了痔疮膏后怕粘到内裤怎么办 眼罩里面的蓝色液体干了怎么办 新买的饮水机有塑料味怎么办 白色衣服被洗衣液染荧光了怎么办 衣服碰到了酒店的毛巾被单怎么办 防晒喷雾弄衣服上有荧光怎么办