码迷,mamicode.com
首页 > 编程语言 > 详细

数组的常用算法问题

时间:2018-01-30 12:27:46      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:折半插入排序   实现   使用   .so   log   body   工具类   shell   数组元素   

1.求数组元素的最大值、最小值、和、平均数

2.数组的复制和反转

情况1:


情况2:(如何实现复制)


数组的反转:
// 数组元素的反转
// for(int i = 0;i < arr.length/2;i++){
// int temp = arr[i];
// arr[i] = arr[arr.length-1 - i];
// arr[arr.length - 1 - i] = temp;
// }
for (int x = 0, y = arr.length - 1; x < y; x++, y--) {
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}

拓展:String str = "abcdefg";

数组的排序:
插入排序
直接插入排序、折半插入排序、Shell排序

交换排序
冒泡排序、快速排序(或分区交换排序)

选择排序
简单选择排序、堆排序

归并排序

基数排序


// 使用冒泡排序使数组元素从小到大排列
// for (int i = 0; i < arr.length - 1; i++) {
// for (int j = 0; j < arr.length - 1 - i; j++) {
// if (arr[j] > arr[j + 1]) {
// int temp = arr[j];
// arr[j] = arr[j + 1];
// arr[j + 1] = temp;
// }
// }
// }
// //使用直接选择排序使数组元素从小到大排列
// for(int i = 0; i < arr.length - 1; i++){
// int t = i;//默认i处是最小的
// for(int j = i;j < arr.length;j++){
// //一旦在i后发现存在比其小的元素,就记录那个元素的下角标
// if(arr[t] > arr[j]){
// t = j;
// }
// }
// if(t != i){
// int temp = arr[t];
// arr[t] = arr[i];
// arr[i] = temp;
// }
// }

还可以调用:Arrays工具类:Arrays.sort(arr);

 

数组的常用算法问题

标签:折半插入排序   实现   使用   .so   log   body   工具类   shell   数组元素   

原文地址:https://www.cnblogs.com/wzlbigdata/p/8383569.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!